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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.05.2014, 15:26   #1
NikoLioZ
Новичок
Джуниор
 
Регистрация: 01.05.2014
Сообщений: 1
Печаль Матрица М состоит из 5 строк, 7 столбцов. Выяснить, есть ли в числе ее элементов хотя бы два различных (Паскаль)

Забросил программирование лет 5 назад. сейчас готовлюсь к сессии. Задачка такова:
"Матрица М состоит из 5 строк, 7 столбцов. Выяснить, есть ли в числе ее элементов хотя бы два различных. Напечатать "ДА" или "НЕТ" в соответствии с результатом анализа. Сформировать массив М1 из элементов матрицы М. Повторяющиеся элементы записывать только один раз"
После дня мучений получил вот это:
Код:
program zadanie1;
{$APPTYPE CONSOLE}
uses
 SysUtils;
type
 Tmatrix=array[1..5,1..7] of integer;
 Tmass=array[1..35] of integer;
var
 matr:Tmatrix;
 mass,mass1:Tmass;
 i,j,q,s,p:integer;
 n,m,c:integer;

 {Позволяет выдавать сообщения на русском языке}
function Rus(mes:string):string;
var h:byte;
begin
 for h:=1 to length(mes) do
  case mes[h] of
   'А'..'п':mes[h]:=Chr(Ord(mes[h])-64);
   'р'..'я':mes[h]:=Chr(Ord(mes[h])-16);
end;
 rus:=mes;
end;

{Создание меню консольного приложения}
procedure menu;
begin
writeln(rus('1-Заполнение и вывод матрицы'));
writeln(rus('2-Поиск различных элементов'));
writeln(rus('3-Создание и вывод массива'));
writeln(rus('0-Отмена'));
writeln(rus('Ваш выбор->'));
end;

{Автозаполенине матрицы случайными числами и вывод её на экран}
procedure autoinput (var  matr:Tmatrix);
begin
 for i:=1 to n do
  for j:=1 to m do
   matr[i,j]:=random(30)+1;
begin
 for i:=1 to n do
  for j:=1 to m do
  begin
    write(matr[i,j]:6);
    if j=m then writeln;
end;
end;
end;

{Нахождение различных элементов матрицы}
procedure seach (var matr:Tmatrix);
begin
s:=0;
 for i:=1 to n do
 for j:=1 to m do
 s:=s+matr[i,j];
end;


{Построение массива из не повторяющихся чисел}
procedure build (var mass:Tmass);
begin
 q:=1;
 for i:=1 to n do
 for j:=1 to m do
  begin
  mass[q]:=matr[i,j];
  q:=q+1
  end;
end;

{Основная программа}
begin
n:=5;
m:=7;
   repeat
    writeln ('');
    menu;
    readln(c);
    case c of
    1:autoinput(matr);
    2:begin
       seach(matr);
       if s/matr[1,1]<>matr[1,1] then writeln(rus('ДА')) else writeln(rus('НЕТ'));
      end;
    3:begin
       build (mass);
       mass1[1]:=mass[1];
       write (mass1[1]);
       for q:=2 to 35 do
       for p:=1 to 35 do
       if mass[q]<>mass1[p]
       then
        begin
         mass1[p]:=mass[q];
         write(mass1[p]);
        end;
      end;
   until c<>0;
end.
2 вопроса, что за ошибка вылетает у меня в предпоследней строке типа: "[Error] Expression expected but 'UNTIL' found", и как мне оптимизировать 3ю часть. Оформлял следовательно указаниям руководителя.
NikoLioZ вне форума Ответить с цитированием
Старый 01.05.2014, 16:27   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,715
По умолчанию

Цитата:
что за ошибка вылетает у меня в предпоследней строке типа: "[Error] Expression expected but 'UNTIL' found"
end забыли для case
p51x вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. Выполнить обработку элементов прямоугольной матрицы А, имеющей N строк и M столбцов. charming Помощь студентам 0 17.12.2011 20:14
Дано натуральное число N. Выяснить, сколько положительных элементов содержит матрица |Dima| Общие вопросы C/C++ 1 06.07.2011 03:36
Матрица. Найти произведение элементов, чьи номера строк и столбцов содержатся в S1 и S2 (Паскаль) Aimet Помощь студентам 0 16.06.2011 20:27
логическая функция same(t), определяющая, есть ли в бинарном дереве T хотя бы два одинаковых элемента 123456789igor Паскаль, Turbo Pascal, PascalABC.NET 1 30.05.2011 00:22
Матрица A состоит из 8 строк и 6 столбцов. вычесть из всех её строк, начиная со второй, первую строку Dimak24 Помощь студентам 1 19.12.2008 15:45