• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Проверка правильности написания программ

Sacred09

Ученик
Почётный участник
Регистрация
22 Мар 2010
Сообщения
185
Реакции
2
Баллы
0
Проверка правильности написания программ

Задание № 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<>j) then
      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
  s, lastword, currword: string;
  i, j, k, p: integer;
begin
  write('s: ');readln(s);

  repeat
    p := pos('  ', s);
    if p > 0 then delete(s, p, 1);
  until p = 0;

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

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

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

PHP:
Uses Graph, CRT;
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.

Правильно ли составлены программы?
 
Правильно ли составлены?
 
Ну вам проще проверить - вы знаете задание, наверняка тестировали программы. Ошибки бывают не только синтаксические, но и логические.
 
Молодой человек, это Вы не у меня ли интересоваться изволите, правильно ли мною же созданная программа написана? И что отвечать на это прикажете? Или кого другого решили подрядить меня проконтролировать? Ну-ну... Успеха в этом начинании!
А если серьезно - мы тут Вам не негры на калифорнийской плантации, чтобы, бросив все дела свои, садиться за тестирование и отладку чужих программ. В конце концов, каждая из программ решает какую-то поставленную задачу, так запустите их по очереди и посмотрите на результат. И все дела.
P.S. Знаете - есть такая русская поговорка про одно животное, которое "посади за стол, так оно и ноги на стол". Если мы готовы помочь, то это не значит, что мы горим желанием впрячься в черновую работу.
Успехов!
 
Назад
Сверху