Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Прочие языки программирования > Прочее...
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 20.12.2014, 16:41
Аватар для PATRIOT.34
PATRIOT.34 PATRIOT.34 вне форума
Прохожий
 
Регистрация: 02.11.2014
Адрес: Волгоградская область
Сообщения: 11
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Pascal операция отношения

Доброго времени суток!!!
Дана задача: Ввести файл F из 11 элементов. Определить в нѐм сумму элементов
стоящих на позициях, чей номер больше записанного в них значения.
Вот что получилось:
Код:
program p15;
   uses crt;
   var
      s: real;
      a,b,i:integer;
      f:file of integer;

procedure vvod;
begin
   clrscr;
   assign(f,'dat.dat');
   rewrite(f);
   writeln('Введите данные для заполнения файла: ');
   for i:=1 to 11 do
      begin
         write('Введите ',i, '-элемент: ');
         readln(b);
         write(f,b);
      end;
   close(f);
end;

procedure resh;
begin
   assign(f, 'dat.dat');
   reset(f);
   while not eof(f) do
      begin
         read(f,b);
         I:=i+1;
         if b>s  then
            begin
               a:=a+b;
               s:= s + 1;
            end;
      write(b);
      end;
end;

procedure vivod;
begin
   write(' Результат= ',a);
   close(f);
end;

begin
   vvod;
   resh;
   vivod;

end.
Проблема заключается в том, что у меня считает наоборот. т.е. вычисляется сумма элементов
стоящих на позициях, чей номер меньше записанного в них значения, а при замене операции отношения(на 31 строке) и вовсе ничего не суммируется.
Подскажите пожалуйста, если не принимать во внимание то, что вся моя программа один сплошной косяк, где я накосячил?
Заранее спасибо!!
Ответить с цитированием
  #2  
Старый 20.12.2014, 22:37
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Если не менять стилистику программы и внести минимальные изменения, то:
Код:
program p15;

{$APPTYPE CONSOLE}

var
  f : File of Integer;
  Sum : Integer;
  
procedure vvod;
var
  I, J : Integer;
begin
  AssignFile(f, 'dat.dat');
  Rewrite(f);
  WriteLn('Введите данные для заполнения файла: ');
  for I := 1 to 11 do
  begin
    Write('Введите ', i, '-элемент: ');
    ReadLn(J);
    Write(f, J);
  end;
  CloseFile(f);
end;

procedure resh;
var
  I, J : Integer;
begin
  AssignFile(f, 'dat.dat');
  Reset(f);
  I := 0;
  while not eof(f) do
  begin
    Read(f, J);
    inc(I);
    if I > J  then
      inc(Sum, J);
    Write(J, ', ');
  end;
end;

procedure vivod;
begin
  Write(' Результат = ', Sum);
  CloseFile(f);
end;

begin
  vvod;
  resh;
  vivod;
end.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
PATRIOT.34 (21.12.2014)
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:22.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter