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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2011, 15:46   #1
Анастасья
Пользователь
 
Регистрация: 16.11.2010
Сообщений: 24
Вопрос Посчитать количество четверок(Delphi7)

#
Код:
 Program Project22;
   {$APPTYPE CONSOLE}
   {Программа позволяет посчитать в массиве из n элементов количество
   четверок a(i),a(i+1),a(i+2),a(i+3)
   идущих подряд членов, их кторых все члены равны}
   uses
   SysUtils,windows;
   { TODO -oUser -cConsole Main : Insert code here }
  const nmax=20;
  type mas=array[1..nmax] of real;
    var
  Art:Mas;
  kol,k:integer;
  procedure read_ar(var ar:mas; N:integer);{процедура прозволяющая заполнить массив}
  var i:integer;
  begin
  for i:=1 to n do
    Begin
    Write('Введите элемент ',i , ':');
    readln(ar[i]);
    End;
  end;

  procedure print_ar(var ar:mas; N:integer);{процедура печатующая массив}
  var i:integer;
  begin
  for i:= 1 to n do
  write (ar[i]:6:1);
  readln;
  end;

  function vivod( var ar: mas; n:integer): integer; {функция проверяет  равны
   ли все дущие подряд  члены }
  var k,i:integer;
  begin
  k:=0;
  i:=1;
  While i < N-3 do
  Begin
  if ( ar[i]=ar[i+1]) and ( ar[i]= ar[i+2]) and (ar[i]= ar[i+3])
  then k:= k+1;
  End;
  vivod:=k;
  end;

  begin
  setconsolecp(1251);
  setconsoleoutputcp(1251);
  Write('Число элементов = ');
  Readln(Kol);
  read_ar(art,kol);
  writeln;
  print_ar(art,kol);
  writeln;
  Writeln('Количество = ',vivod(k):8:6);:confused:
  readln;
  End.
{программа выдает ошибку что формальный и фактические типы должны совпадать... я не пойму как исправить.. }

Последний раз редактировалось Stilet; 10.04.2011 в 16:36.
Анастасья вне форума Ответить с цитированием
Старый 10.04.2011, 15:48   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
While i < N-3 do
Begin
if ( ar[i]=ar[i+1]) and ( ar[i]= ar[i+2]) and (ar[i]= ar[i+3])
then k:= k+1;
i:=i+1;//пропустили
End;
у вас функция Vivod как описана
Код:
function vivod( var ar: mas; n:integer): integer;
и как вы ее вызываете
Код:
vivod(k):8
разницу видите7
должно быть
Код:
 vivod(art,kol):8:6
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 10.04.2011 в 17:04.
Mad_Cat вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Посчитать количество записей в БД ACCESS Dux БД в Delphi 22 31.03.2015 20:36
Посчитать количество слов OPEJI Паскаль, Turbo Pascal, PascalABC.NET 5 19.05.2011 17:58
посчитать количество нулей в массиве melie91 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 22.02.2011 13:49
Как посчитать количество знаков PARTOS Microsoft Office Excel 11 05.06.2010 22:46
Посчитать количество символов в файле Sabyr Помощь студентам 1 31.05.2009 18:50