На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
Дорогие друзья! Поздравляем вас с днём Победы!
msm.ru
Название темы должно быть информативным !
Прежде чем задать вопрос, воспользуйтесь Поиском. и проверьте в FAQ (ЧАВО) Паскаля
Чтобы получить вразумительный ответ, подробно опишите проблему: что надо сделать, что не получается и номер ошибки (если есть), которую выводит компилятор.
Для вставки кода ваших программ используйте, пожалуйста, кнопку СODE=pas или выпадающий список СODE для других языков (подсветка синтаксиса).
[!] Как правильно задавать вопросы | Руководство по языку B.Pascal 7 & Objects/LR | Borland Pascal. Руководство пользователя
Модераторы: volvo877
  
> Процедуры и функции, задача
    В матрице A(nxm) определите количество строк, элементы которой образуют арифметическую прогрессию. Используйте подпрограмму проверки строки.

    Вот написал, и опять не компилируется...

    ExpandedWrap disabled
      Uses  crt;
      const nmax=20;
      type  matr=array [1..nmax,1..nmax] of integer;
      var a: matr;
          n,m: byte;
          l,d : Integer;
       
      procedure Vvod2M(ri,rj: byte; var z:matr);
      var i,j: byte;
      begin
      for i:=1 to ri do
          for j:=1 to rj do
              begin
              write('a[',i,',',j,']=');
              readln(a[i,j]);
              end;
      end;
       
      procedure Print2M(ri,rj: byte; z:matr);
      var i,j: byte;
      begin
      for i:=1 to ri do
          begin
          for j:=1 to rj do
              write(z[i,j]:4);
          writeln;
          end;
      end;
       
      Function Sa (n, a: Integer):Integer;
       
      Begin If n>0 Then Sa:=a+Sa (n-l,a+d) Else Sa:=0; End;
       
       
      begin
      repeat
      write('Количество строк, не более ', n='); readln(n);
      until n in [1..nmax];
      repeat
      write('Количество столбцов, не более',nmax,', m='); readln(m);
      until m in [1..nmax];
      Vvod2M(n,m,a);
      Print2M(n,m,a);
      if Sa(n,m,a)>0 then k:=k+1
         else ('Нет столбцов с арифметич. прогрессией');
      readln; writeln (k);
      End.
    Сообщение отредактировано: volvo877 -
      А если не секрет - ты в IDE Turbo Pascal работаешь?
      Тогда при ошибке компиляции курсор устанавливается на строку с ошибкой. Посмотри внимательно - там не хватает апострофа. После исправления ищи следующую - пропущено слово writeln. Дальше мне было лень разбираться в чужом неформатированом месиве символов.

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

      Для обрамления кода в посте пользуйся тегами CODE - вставляются кнопкой CODE=pas.
        Там не хватает не только апострофа, но и запятой перед ним, правильно 37-я строка выглядит так:
        ExpandedWrap disabled
          write('Количество строк, не более ', nmax, '='); readln(n);
        1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0195 ]   [ 14 queries used ]   [ Generated: 12.05.24, 14:16 GMT ]