Помощь - Поиск - Пользователи - Календарь
Полная версия: 4 простые задачи
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи > Задачи на заказ
time
Помогите с этой прогой пожалуйста, сделать из неё 4 новых

А именно, нужно:
1. Использовать процедуры с параметрами (не менее 3-х параметров).
2. Использовать процедуры без параметров.
3. Использовать функции с параметрами (не менее 3-х параметров).
4. Использовать функции без параметров.

Требования к прогам - процедура или ф-ия должны использоваться в проге минимум 2 раза, процедуры должны быть одинаковыми (т.е. в первой проге используеца проц с параметрами и во второй проге доолжна быть точно такая же процедура, но уже без параметров) с функциями так же, использовынные параметры должны меняться.
Суть проги должна остаться той же.

Код

uses crt;
const
max_n = 9;
var
a,b:array[1..max_n,1..max_n] of integer;
i,j,n1,n2,error:integer;
s: string; x: longint; er: integer;

label e1;
begin
clrscr;
gotoxy  (3,10);
writeln ('Данная программа задаёт матрицу А. После чего создаёт');
 gotoxy  (57,10);
writeln ('новую матрицу B, где ');
 gotoxy  (12,11);
writeln ('а) B(i,j) = A(i,j), если A(i,j) > 0');
 gotoxy  (12,12);
writeln ('б) B(i,j) не равно 0, если A(i,j) <= 0');
 gotoxy  (7,14);
writeln ('Элементами матрицы могут быть только целые числа от -32768 до 32767,');
 gotoxy  (18,15);
writeln ('максимальный размер матрицы 9х9!');
 gotoxy  (18,20);
writeln ('Нажмите любую клавишу для продолжения');
 readkey;
e1:
clrscr;
repeat
  write('Введите кол-во строк = ');
{$I-} readln(n1);
error:=ioresult;{$I+}
IF (n1<2) or (n1>max_n) or (error<>0)
then  writeln ('Кол-во строк от 2 до 9!');
until (n1 >= 2) and (n1<=max_n) and (error=0);

repeat
  write('Введите кол-во столбцов = ');
  {$I-} readln(n2);
  error:=ioresult;{$I+}
  IF (n2<2) or (n2>max_n) or (error<>0)
  then writeln ('Кол-во столбцов от 2 до 9!');
until (n2 >= 2) and (n2<=max_n) and (error=0);


for i := 1 to n1 do
for j := 1 to n2 do
  begin
    repeat
      write('a[', i, ',', j, '] = '); Readln(s);
      val(s, x, er);
      if (er<>0) or (x < -32768) or (x > maxint)
      then writeln('Введённый вами символ вне диапозона от -32768 до 32767');
    until (x>=-32768) and (x<=maxint) and (er=0);
    a[i,j] := x;
  end;

for i := 1 to n1 do
for j := 1 to n2 do
begin
     if a[i,j] > 0 then b[i,j] := a[i,j]
     else
     b[i,j] := 0;
end;
clrscr;
write('Матрица A');
for i := 1 to n1 do
begin
     writeln;
     for j := 1 to n2 do
     Write(a[i,j]:7);
end;

writeln;
write('Матрица B');
for i := 1 to n1 do
begin
     writeln;
     for j := 1 to n2 do
     Write(b[i,j]:7);
     end;
     writeln ('');
     write('Вы хотите сделать ещё одну матрицу? y/n');
     case readkey of
 #89: goto  e1;
 #121: goto e1;
 #78: exit;
 #110: exit;
end;
end.

За задачку плачу 2wmz
Живу в Москве
volvo
http://forum.pascal.net.ru/index.php?showt...indpost&p=36055

Ну сколько же можно? Ведь было уже, что ж вам все время недостаточно? Нельзя там больше ничего сделать, поймите !!! И так уже слишком много вариантов предложено !!!
time
Неужели такая тупиковя программа и нельзя из неё сделать 4 новые, которые соответсвовали бы требованиям?
Не обязательно делать 4, можно совместить в одной проге сразу 2.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.