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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.03.2009, 18:08   #1
xSPiRiTx
Пользователь
 
Регистрация: 05.05.2008
Сообщений: 15
Сообщение помогите разобраться с Pascal - тема Массивы

приветы!
вот на сдаче сессии не могу разобраться с лабораторной по Pascal на тему Массивы и индексированные переменные.

Само задание выглядит так:
Цитата:
{2.11. VAR A:ARRAY[1..8,1..10] OF INTEGER;
B:ARRAY[1..8] OF BOOLEAN;
по массиву А получить массив В, присвоив его k-му эле-
менту значение TRUE, если выполнено указанное ниже ус-
ловие, и значение FALSE - иначе: k-я строка массива А
симметрична.}

я вот нарешал тут кой-чо, но это все как бы выходит недоделанно и как бы возможно соединить из нескольких программ в одну придется, только я не справлюсь с этим никак =(

сначала я сделал как процедуру, но это не вписалось в задание:
Код:
procedure Check211;
VAR A:ARRAY[1..8,1..10] OF INTEGER;
   B:ARRAY[1..8] OF BOOLEAN;
   i,k:integer;
   tb:boolean;
begin
for i:=1 to 8 do
 begin
 tb:=true;
 for k:=1 to 5 do
   if A[i,k]<>A[i,11-k] then
     begin
     tb:=false;
     break;
     end;
 B[i]:=tb;
 end;
end;
...потом из эту же процедуру переписал как программу, чтобы был вывод результата, но это опять не понравилось преподавателю и я так понял вывод результата не тут и не такой:
Код:
program lab62;
uses crt;
VAR A:ARRAY[1..8,1..10] OF INTEGER;
   B:ARRAY[1..8] OF BOOLEAN;
   i,k:integer;
   tb:boolean;
begin
clrscr;
for i:=1 to 8 do
 begin
 tb:=true;
 for k:=1 to 5 do
   if A[i,k]<>A[i,11-k] then
     begin
     tb:=false;
     break;
     end;
 B[i]:=tb;
 end;
 writeln(tb);
end.
вот последний вариант переделанный мною уже получше, но тут не указана симметричность (k-я строка массива А симметрична):
Код:
program lab62;
uses crt;
VAR A:ARRAY[1..8,1..10] OF INTEGER;
   B:ARRAY[1..8] OF BOOLEAN;
   i,k:integer;
   tb:boolean;
begin
clrscr;
for i:=1 to 8 do
 begin
 tb:=true;
 for k:=1 to 5 do
   if A[i,k]<>A[i,11-k] then
     begin
     tb:=false;
     break;
     end;
 B[i]:=tb;
 end;
 writeln(tb);
end.
xSPiRiTx вне форума Ответить с цитированием
Старый 06.03.2009, 01:38   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Так а в чем дело? Если я правильно понял задание, то последний вариант работает.
Только вот где у вас заполнение матрицы?
И writeln(tb); нужно запихнуть в цикл.

Вот. Рандомно заполняю матрицу, а затем 5-ю строку делаю симметричной (для проверки).

Код:
program lab62;
uses crt;
VAR A:ARRAY[1..8,1..10] OF INTEGER;
   B:ARRAY[1..8] OF BOOLEAN;
   i,k:integer;
   tb:boolean;
begin
clrscr;
randomize;
for i:=1 to 8 do
 begin
 if i=5 then
  begin
  for k:=1 to 5 do
   begin
   a[i,k] := k;
   write(a[i,k]:4);
   end;
  for k:=6 to 10 do
   begin
   a[i,k] := 11-k;
   write(a[i,k]:4);
   end;
  end
  else
 for k:=1 to 10 do
  begin
  a[i,k] := random(10)+1;
  write(a[i,k]:4);
  end;
 writeln;
 end;
writeln;

writeln('B: ');
for i:=1 to 8 do
 begin
 tb:=true;
 for k:=1 to 5 do
   if A[i,k]<>A[i,11-k] then
     begin
     tb:=false;
     break;
     end;
 B[i]:=tb;
 writeln(tb);
 end;

 readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 06.03.2009, 11:30   #3
xSPiRiTx
Пользователь
 
Регистрация: 05.05.2008
Сообщений: 15
По умолчанию

во, спасибо большое! терь уяснил =)))
xSPiRiTx вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачка для Бонард Си... тема: указатели и массивы... Катюшенька Помощь студентам 2 26.01.2009 22:18
Задачи на С++.Тема:Массивы Wia Помощь студентам 7 20.12.2008 16:01
Помогите с прогой. Тема: символьные массивы Алексей Д. Помощь студентам 6 02.04.2008 22:10
Помогите, пожалуйста, решить задачу на Turbo Pascal. Тема: записи. Morrigan13 Помощь студентам 1 28.03.2008 21:09