Показать сообщение отдельно
Старый 19.01.2011, 22:47   #1 (permalink)
Sacred09
Member
 
Регистрация: 22.03.2010
Сообщений: 185
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 54
Exclamation Проверка правильности написания программ

Задание № 1 «Обработка символьных данных»
1.Выполнить на ЭВМ программу обработки символьных данных в соответствии с вариантом, указанным в таблице. Предусмотреть ввод исходных данных как с клавиатуры, так и из файла.
2.Проверить правильность выполнения программы с помощью тестового варианта.

1 часть. Обработка текста.
Вопрос:Задан список городов. Поменять местами названия любых двух городов, заканчивающихся буквой "а".
PHP код:
uses crt;
const 
sp:array[1..10]of string=('Москва','Орел','Глазов','Коломна','Ванино',
                                
'Калуга','Серов','Ростов','Орша','Клин');
var 
i,j:integer;
    
x:string;
begin
clrscr
;
writeln('Ishodnyj spisok:');
for 
i:=1 to 10 do
writeln(sp[i]);
writeln;
writeln('Izmenennyj spisok:');
for 
i:=1 to 10 do
   
begin
    
for j:=1 to 10 do
    if (
sp[i][length(sp[i])]='а')and(sp[j][length(sp[j])]='а')and(i<>jthen
      begin
       x
:=sp[i];
       
sp[i]:=sp[j];
       
sp[j]:=x;
       break;
      
end;
    break;
  
end;
for 
i:=1 to 10 do
writeln(sp[i]);
readln
end


II часть. Работа с файлами.
Дана последовательность, содержащая от 2 до 10 слов, в каждом из которых от 2 до 6 латинских букв; между соседними словами - не менее одного пробела, за последним словом точка. Напечатать все слова, отличные от последнего слова, предварительно преобразовав каждое из них по следующему правилу:
удалить из слова все последующие вхождения первой буквы;
PHP код:
uses crt;
var
  
slastwordcurrwordstring;
  
ijkpinteger;
begin
  write
('s: ');readln(s);

  
repeat
    p 
:= pos('  's);
    if 
0 then delete(sp1);
  
until p 0;

  
:= length(s) - 1;
  while 
s[p] <> ' ' do dec(p);
  
lastword := copy(s1length(s) - 1);

  
:= 1;
  while 
do begin
 
      k 
:= i;
      while(
p) and (s[i] <> ' ') do inc(i);
 
      
currword := copy(ski-k);
      if 
currword <> lastword then
      begin
        
for := length(currworddownto 2 do
          if 
currword[j] = currword[1then delete(currwordj1);
        
writeln(currword);
      
end;
      
inc(i);
 
  
end;
  
readln
end

Задание № 2 «Обработка графических данных»
1 часть.
Напишите процедуру рисования графика функции в соответствии с вариантом, указанным в таблице. Предусмотреть вывод оцифрованных координатных осей соответственно области построения, подписей к графику. Рационально расположить элементы рисунка (график, оси, цифры и штрихи масштабирования, подписи) на экране.
y=SQR(Sin(x))

PHP код:
Uses GraphCRT;
VAR
 
i,j:INTEGER;
 
S:String;
 
x,y:Real;

BEGIN
 InitGraph 
(i,j,'');
 
Line(40,420,640,420);
 
Line(40,420,40,20);
 
SetTextStyle(DefaultFont,HorizDir,1);
 
SetTextJustify(CenterText,TopText);
 
OutTextXY(40,430,'0');
 FOR 
i:=1 TO 5 DO
  
begin
   Line
(40+i*100,420,40+i*100,410);
   
Str(i/2:3:1,S);
   
OutTextXY(40+i*100,430,S+'*Pi');
  
end;

 
SetTextJustify(RightText,CenterText);
 FOR 
i:=0 TO 10 DO
  
begin
   Line
(40,420-i*40,50,420-i*40);
   
Str(0.1*i:3:1,S);
   
OutTextXY(35,420-i*40,S);
  
end;

 
SetLineStyle(SolidLn,0,ThickWidth);
 
MoveTo(40,420);
 
x:=0;
 For 
i:=1 to 600 do
  
begin
   x
:=x+Pi/200;
   
y:=SQR(Sin(x));
   
LineTo(40+Round(x*200/Pi),Round(420-y*400));
  
end;
 
ReadKey;
 
CloseGraph;
END
II часть
Напишите программу для отображения движения многоугольника (плоской фигуры) по экрану по принципу «угол падения равен углу отражения», поверхностями считать границы экрана. Предусмотреть изменение цвета многоугольника (плоской фигуры) при смене направления движения.
Придумать оригинальную плоскую фигуру.
PHP код:
uses graph,crt;
var 
x,y,x0,y0,d,r,dx,dy,i:integer;
begin
x
:=0;
initgraph(x,y,'');
x0:=getmaxX div 2;
y0:=getmaxY div 2;
outtextXY (x0-80,20,'Vyhod - press and key...');
d:=200;
r:=100;
rectangle (x0-d,y0-d,x0+d,y0+d);
x:=x0;
y:=y0-d+r+1;
dx:=-1;
dy:=1;
i:=10;
repeat
setcolor
(i);
circle(x,y,r);
setfillstyle(1,i);
fillellipse(x,y,r,r);
delay(10);
setcolor(0);
circle(x,y,r);
setfillstyle(1,0);
fillellipse(x,y,r,r);
x:=x+dx;
y:=y+dy;
if 
x=x0-d+r+2 then
begin
dx
:=1;
i:=i+1;
if 
i=16 then i:=1;
end
else if y=y0+d-r-2 then
begin
dy
:=-1;
i:=i+1;
if 
i=16 then i:=1;
end
else if x=x0+d-r-2 then
begin
dx
:=-1;
i:=i+1;
if 
i=16 then i:=1;
end
else if y=y0-d+r+2 then
begin
dy
:=1;
i:=i+1;
if 
i=16 then i:=1;
end
until keypressed
;
end
Правильно ли составлены программы?
Sacred09 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070