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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2008, 19:48   #1
Hworang
Пользователь
 
Регистрация: 11.10.2007
Сообщений: 24
По умолчанию Массив

Задание: 1. Вывести на печать индексы и значения положительных элементов четных строк двумерной матрицы.

вот написал программку, подскажите, что не так?

program mass;
var
i,j:integer;
a : array[n,m] of real;
begin
for i:=0 to n do
for j:=0 to m do
if (i div 2)=0 then
begin
if (a[n,m]>0) then
writeln ('a[n,m]=');
end;
end.
Hworang вне форума Ответить с цитированием
Старый 23.12.2008, 20:09   #2
Teor
Пользователь
 
Регистрация: 20.12.2008
Сообщений: 46
По умолчанию

Цитата:
a : array[n,m] of real;
Надо задать n,m в разделе констант и записать так n..m.
Цитата:
if (i div 2)=0 then
div-целое число от деления. Тоесть 4 div 2=2. Место div надо использовать mod. Ну и наконец надо как-то ввести масив в программу.
И еще надо вот так writeln (a[n,m]); Или так writeln ('a[n,m]=',a[n,m]);
Teor вне форума Ответить с цитированием
Старый 23.12.2008, 20:20   #3
pomoshnic
Форумчанин
 
Аватар для pomoshnic
 
Регистрация: 16.11.2008
Сообщений: 192
По умолчанию

Много чего, вот пример правильной программы
Код:
program mass;
var
i,j:integer;
a : array[0..100,0..100] of real;
begin
for i:=0 to 100 do
for j:=0 to 100 do
if odd(i)=false then
begin
if (a[i,j]>0) then
writeln ('a[n,m]=',a[i,j]);
end;
readln
end.
pomoshnic вне форума Ответить с цитированием
Старый 23.12.2008, 20:31   #4
Hworang
Пользователь
 
Регистрация: 11.10.2007
Сообщений: 24
По умолчанию

Цитата:
Сообщение от pomoshnic Посмотреть сообщение
Много чего, вот пример правильной программы
Код:
program mass;
var
i,j:integer;
a : array[0..100,0..100] of real;
begin
for i:=0 to 100 do
for j:=0 to 100 do
if odd(i)=false then
begin
if (a[i,j]>0) then
writeln ('a[n,m]=',a[i,j]);
end;
readln
end.
Извините, я не совсем понял вот эту строку:" if odd(i)=false then " , можете обьяснить?
и непойму как оно выведет мне результат без ввода данных? или через рандом заполнить?

Последний раз редактировалось Hworang; 23.12.2008 в 20:40.
Hworang вне форума Ответить с цитированием
Старый 23.12.2008, 20:40   #5
pomoshnic
Форумчанин
 
Аватар для pomoshnic
 
Регистрация: 16.11.2008
Сообщений: 192
Стрелка Odd(i)

Odd(i) проверяет параметр на нечетность. Значение функции Odd(i) равно true, если i - нечетное число, и false если i - четное.
Цитата:
и непойму как оно выведет мне результат без ввода данных? или через рандом заполнить?
мржно попробовать.

Последний раз редактировалось pomoshnic; 23.12.2008 в 20:44.
pomoshnic вне форума Ответить с цитированием
Старый 23.12.2008, 21:01   #6
pomoshnic
Форумчанин
 
Аватар для pomoshnic
 
Регистрация: 16.11.2008
Сообщений: 192
По умолчанию

Вот пример с рандомом
Код:
program mass;
var
m:byte;
i,j:integer;
a : array[0..100,0..100] of real;
begin
randomize;
for i:=0 to 100 do
for j:=0 to 100 do
a[i,j]:=random(100);
for i:=0 to 100 do
for j:=0 to 100 do
if odd(i)=false then
begin
if (a[i,j]>0) then
begin
writeln ('a[n,m]=',a[i,j]);
inc(m);{увеличение значения переменной m на 1}
if m>=24 then begin readln; m:=0;end;{проверка на количество значений выводимых на монитор}
end;
end;
readln
end.
pomoshnic вне форума Ответить с цитированием
Старый 23.12.2008, 21:04   #7
Hworang
Пользователь
 
Регистрация: 11.10.2007
Сообщений: 24
По умолчанию

Вот чуть подправил программу, но почему то после ввода 10 значений высвечивает в ответе последнее значение
и не показывает индексы значений
Код:
  
program mass;
var
i,j:integer;
a : array[0..5,0..5] of real;
begin
for i:=0 to 5 do
for j:=0 to 5 do
begin write('vvedite a[i,j]='); read(a[i,j]);
if odd(i)=false then
begin
if (a[i,j]>0) then
writeln ('a[n,m]=',a[i,j]);
end;
end;
readln
end.
Hworang вне форума Ответить с цитированием
Старый 23.12.2008, 21:26   #8
pomoshnic
Форумчанин
 
Аватар для pomoshnic
 
Регистрация: 16.11.2008
Сообщений: 192
По умолчанию

Вот с индексами и выводом всех значений
Код:
program mass;
var
i,j:integer;
a : array[0..5,0..5] of real;
begin
for i:=0 to 5 do
for j:=0 to 5 do
begin write('vvedite a[',i,',',j,']='); read(a[i,j]);end;
for i:=0 to 5 do
for j:=0 to 5 do
begin
if odd(i)=false then
begin
if (a[i,j]>0) then
writeln ('a[',i,',',j,']=',a[i,j]);
end;
end;
readln;
readln
end.

Последний раз редактировалось pomoshnic; 23.12.2008 в 21:29.
pomoshnic вне форума Ответить с цитированием
Старый 23.12.2008, 22:50   #9
Hworang
Пользователь
 
Регистрация: 11.10.2007
Сообщений: 24
По умолчанию

спасибо за помощь
Hworang вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
1D массив... Godless Помощь студентам 1 07.12.2008 17:36
Упорядочить массив в порядке возрастания и напечатать входной и исходный массив. TheVenny Помощь студентам 3 26.11.2008 15:06
Массив на Си Карол Помощь студентам 2 12.11.2008 22:44
Массив Айвенго PHP 2 22.02.2008 16:34
Массив Snake_ua Помощь студентам 2 15.10.2007 07:04