ЗАДАНИЕ 1: Набрать и протестировать ** компьютере программу, организующую ввод -вывод...

0 голосов
41 просмотров

ЗАДАНИЕ 1:

Набрать и протестировать на компьютере программу, организующую ввод -вывод двумерного массива целых чисел 3х4. Для ввода и вывода использовать процедуры, которые будут вызываться в основной программе.

Текст программы:

Program Prim;
Type vector=array[1..3] of integer;
matr=array[1..4] of vector ;
Var x:matr;

{Процедура ввода в режиме диалога}
Procedure wwod(var a:matr; Name:char);
Begin
for i:=1 to 3 do
for j:=1 to 4 do
begin
write(Name,'[',i,', j]=');
readln(a[i,j]);
end
End;

{Процедура вывода}
Procedure wywod(a:Matr);
Var i:integer;
Begin
for i:=1 to 3 do
begin
for j:=1 to 4 do
write(a[i,j]);
writeln;
end;
End;

{основная программа}
Begin
wwod(x, 'X');
writeln ('Ввод окончен.');
writeln ('Вывод: ');
wywod(x);
End.


ЗАДАНИЕ 2:

Видоизменить программу, добавив в нее описание и вызов процедуры, преобразующей введенный массив по следующему правилу: каждый элемент массива увеличивается на 4 - a[i,j]:=a[i,j]+4;.


Информатика (176 баллов) | 41 просмотров
0

Помогите.

Дан 1 ответ
0 голосов

1. Большое количество ошибок в приведенном коде.
- В нескольких местах в процедурах не описаны переменные i,j
- В циклах неверно указано условие окончание цикла
- Неправильно описаны переменные в заголовке процедур

2. После исправления ошибок и добавления процедуры P4 (вторая часть задания) код программы будет таким:

Program Prim;
  Type vector=array[1..4] of integer;
    matr=array[1..3] of vector ;
  Var x:matr;

{Процедура ввода в режиме диалога}
Procedure wwod(var a:matr; Name:char);
  var i,j:integer;
  Begin
    for i:=1 to 3 do
    for j:=1 to 4 do
      begin
        write(Name,'[',i,',', j,']=');
        readln(a[i,j]);
      end;
    End;

{Процедура вывода}
Procedure wywod(var a:Matr);
  Var i,j:integer;
  Begin
    for i:=1 to 3 do
      begin
        for j:=1 to 4 do
        write(a[i,j]);
        writeln;
      end;
  End;
{каждый элемент массива увеличивается на 4}

Procedure p4(var a:Matr);
  Var i,j:integer;
  Begin
    for i:=1 to 3 do
      begin
        for j:=1 to 4 do
          a[i,j]:=a[i,j]+4;
      end;
  End;

{основная программа}
Begin
  wwod(x, 'X');
  writeln ('Ввод окончен.');
  writeln ('Вывод: ');
  wywod(x);
  p4(x);
  wywod(x);
end.

Тестовое решение:
X[1,1]=2
X[1,2]=2
X[1,3]=2
X[1,4]=2
X[2,1]=2
X[2,2]=2
X[2,3]=2
X[2,4]=2
X[3,1]=2
X[3,2]=2
X[3,3]=2
X[3,4]=2
Ввод окончен.
Вывод:
2222
2222
2222

6666
6666
6666


(13.9k баллов)