Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2011, 20:07   #1
Anton94.by
Форумчанин
 
Регистрация: 16.10.2011
Сообщений: 115
Вопрос исправьте ошибки в массиве

Программа в паскаль по теме: " Массивы"
Исправьте ошибки в программе. Спасибо.

1) Дана квадратная матрица A(nхn). Построить вектор b, где bi, i=1,…,n – среднее арифметическое четных элементов i-ой строки матрицы.

2) Дана квадратная матрица A(nхn). Удалить из матрицы все строки, первый элемент которых отрицательное число.

3) Дана квадратная матрица A(nхn). Найти сумму четных элементов матрицы в задан-ной области.
__
|_| ( низ квадрата незакрашенный треугольник , а весь верх и что осталось от нижнего треугольника закрашено.)



1)program massiv1;
var
a:array[1..10,1..10]of integer;
b:array[1..10]of integer;
i, j, k, q, n:integer;
begin
write(' Введите размерность квадратной матрицы n');
readln(n);
writeln(' Введите элементы массива*');
for i:=1 to n do
for j:=1 to n do
read(a[i,j]);
for i:=1 to n do
begin
for j:=1 to n do
if a[i,j] mod 2=0 then
begin k:=k+a[i,j];
q:=q+1;
end;
if q<>0 then b[i]:=round(k/q);
k:=0;
q:=0;
end;
writeln (' Матрица B');
for i:=1 to n do
write(b[i],' ');
writeln;
end.


2)program massiv2; { дона квадратная матрица* A(n*n)}
var
a:array[1..10,1..10]of integer;
i, j, n:integer;
begin
write( ' Введите размерность квадратной матрицы n');
read(n);
writeln(' Введите элементы массива' );
for i:=1 to n do
for j:=1 to n do
read(a[i,j]);
for i:=1 to n do
for j:=1 to n do
if a[i,1]<0 then a[i,j]:=-1;
for i:=1 to n do
for j:=1 to n do
if a[i,j]<>-1 then write(a[i,j],' ');
end.


3)program massiv3;
var mas, i, j, n, m, bgi, bgj, edi, edj, sum: integer;
begin
sum:=0;
readln ( n, m, bgi, bgj, edi, edj );
for i:=1 to n do
for j:=1 to m do begin
read ( mas );
if ( i >= bgi ) and ( i < edi ) then sum:=sum + mas
else if ( i = edi ) and ( j <= edj ) then sum:=sum + mas;
end;
writeln ( sum );
end.
Anton94.by вне форума Ответить с цитированием
Старый 01.12.2011, 22:26   #2
fredwriter
Форумчанин
 
Регистрация: 06.10.2009
Сообщений: 121
По умолчанию

В первой программе я бы посоветовал сделать массив b типом real.

Во второй программе нужно не вывести строки, первый элемент которых неотрицательное число, а удалить из массива строки, первый элемент которых отрицательный. Но я думаю это не принципиально, так как Вами задано условие, по которому можно работать с такими строками. Но если нужно действительно удалить, то придется воспользоваться запасным массивом. Вам говорится если первый элемент строки отрицательный, а вы проверяете все элементы массива.

В третьей программе нужно всё таки использовать массив, если сказано, что квадратная матрица.
Вот мой вариант третьей программки:

Код:
program Project2;

var
  Mass: array[1..11, 1..11] of integer;
  i, j, sum, k, l, n: integer;
begin
  l := 0;
  randomize;
  writeln('Введите нечетное число');// легче выделить треугольник внизу матрицы если n нечетное
  readln(n);
  For i := 1 to n do
    For j := 1 to n do
      Mass[i, j] := Random(5) + 1;
  i := n div 2 + 1;
  j := n div 2 + 1;
  While (i >= n div 2 + 1) and (i <= n) do
  begin
    for k := 0 to l do
      while l <= i - (n div 2 + 1)  do
      begin
        j := (n div 2 + 1) - l;
        if Mass[i, j] mod 2 = 0 then
          sum := sum + Mass[i, j];
        j := (n div 2 + 1) + l;
        if Mass[i, j] mod 2 = 0 then
          sum := sum + Mass[i, j];
        inc(l);
      end;
    j := n div 2 + 1;
    inc(i);
    l := 0;
  end;
  write(sum);
  Readln;
end.
Ищущий да обрящет

Последний раз редактировалось fredwriter; 02.12.2011 в 00:19.
fredwriter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
исправьте ошибки rwrwrw Паскаль, Turbo Pascal, PascalABC.NET 1 26.10.2011 08:59
исправьте ошибки CHOSEN1 Помощь студентам 7 08.10.2010 15:48
Исправьте синтаксические ошибки Superlotles Общие вопросы C/C++ 4 25.03.2010 12:40
Помогите с прогой (исправьте ошибки) k1r1ch Паскаль, Turbo Pascal, PascalABC.NET 7 18.10.2009 09:29
Си++. Исправьте пожалуйста ошибки megavolt91 Помощь студентам 3 29.05.2009 16:02