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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.09.2015, 20:09   #1
Otar4ik
Форумчанин
 
Регистрация: 16.04.2010
Сообщений: 123
По умолчанию Не выводит результат

Изменил и сделал ввод с клавиатуры и на выходе(на рисунке ниже выдаёт некорректный результат)

Код:
program var3_20;
uses crt;
type
   mas = array[1..10, 1..10] of integer;

var
   a: mas;
   i, j, key, k,m,n: integer;

begin
   writeln('1 - Вывести количество строк, элементы которых монотонно возрастают');
   writeln('2 - Вывести количество столбцов, элементы которых монотонно убывают');
   readln(key);
  writeln('Введите числа M  и N ');
   read(m); 
   readln(n);
   writeln('Введите по ', n, ' элементов (значения от 0 до 100) ');
   for i := 1 to m do 
   begin
      write(i, ' строки : ');
      for j := 1 to n do 
         read(a[i, j]);
   end;  
   case key of
      1:     
         begin
            writeln('Результат программы:');
            for i := 1 to n do
            begin
               k := 1;
               for j := 2 to m do
                  if(a [i, j] > a[i, j - 1]) then
                     inc(k);
               if(k = m) then
                  write(a[i]:4);
            end;
            for i := 1 to n do
            begin
              for j := 1 to n do
                  write(a[j]:5);
               writeln;
            end;
         end;
      2:         
         begin
            writeln('Результат программы:');
            k := 1;
            for j := 1 to m do
               for i := 2 to n do
               begin
                  if(a [i, j] < a[i - 1, j]) then
                     inc(k);
               end;
            if(k = n) then 
            begin
               for i := 1 to n do
               begin
                  for j := 1 to n do
                     writeln(a[i, j]:4);
               end;             
            end;
         end;
   end;
end.
Изображения
Тип файла: jpg Безымянный.jpg (79.5 Кб, 132 просмотров)
Otar4ik вне форума Ответить с цитированием
Старый 05.09.2015, 20:25   #2
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

Код:
1:
         begin
            writeln('Результат программы:');
            for i := 1 to n do
            begin
               k := 1;
               for j := 2 to m do
                  if(a [i, j] > a[i, j - 1]) then
                     inc(k);
               if(k = m) then
                  write(a[i, j]:4);
            end;
            for i := 1 to n do
            begin
              for j := 1 to n do
                  write(a[i, j]:5);
               writeln;
            end;
         end;
пробуй, ты пропустил индексы (а я мог их местами попутать )
GreenWizard вне форума Ответить с цитированием
Старый 05.09.2015, 20:45   #3
Otar4ik
Форумчанин
 
Регистрация: 16.04.2010
Сообщений: 123
По умолчанию

Заработало но строки неправильно считает...он просто их количество выводит вместо условия,что можно исправить чтобы по условию работало
Otar4ik вне форума Ответить с цитированием
Старый 06.09.2015, 00:23   #4
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Код:
type
   mas = array[1..10, 1..10] of integer;

var
   a: mas;
   i, j, key, k,m,n, count: integer;

begin
   writeln('1 - Вывести количество строк, элементы которых монотонно возрастают');
   writeln('2 - Вывести количество столбцов, элементы которых монотонно убывают');
   readln(key);
   writeln('Введите количество строк (M) и столбцов (N) через пробел: ');
   read(m);
   readln(n);
   writeln('Введите по ', n, ' элементов для каждой строки через пробел (значения от 0 до 100) ');
   for i := 1 to m do
   begin
      write('Введите элементы ',i,' строки: ');
      for j := 1 to n do
         read(a[i, j]);
   end;
   readln;
   count:=0;
   case key of
      1:
        begin
            for i := 1 to m do
            begin
               k := 1;
               for j := 2 to n do
                  if(a [i, j] > a[i, j - 1]) then
                     inc(k);
               if(k = n) then
                  inc(count);
            end;
         end;
      2:
         begin
            for i := 1 to n do
            begin
               k := 1;
               for j := 2 to m do
                  if(a [j, i] < a[j - 1, i]) then
                     inc(k);
               if(k = m) then
                  inc(count);
            end;
         end;
   end;
   writeln('Результат программы: ', count);
   readln;
end.
Вроде должно работать правильно.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Старый 06.09.2015, 09:44   #5
Otar4ik
Форумчанин
 
Регистрация: 16.04.2010
Сообщений: 123
По умолчанию

Спасибо,заработало
Otar4ik вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа не выводит результат ###333### Помощь студентам 1 23.03.2015 05:27
Не выводит результат о подсчете строк. Predator199 PHP 2 06.08.2012 16:52
Не выводит результат (нестандартные функции) pachuk Общие вопросы C/C++ 2 08.12.2011 00:26
Edit не выводит результат Ro_Mashka Общие вопросы Delphi 8 22.05.2011 17:14