Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 02.05.2017, 22:23   #1 (permalink)
kot_
Новичок
 
Регистрация: 06.03.2017
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Чтение данных из файла. Free Pascal - Free Pascal

Условия задачи : Несколько школьников выстроились в шеренгу. Для каждого школьника известна дата рождения(день). Требуется: определить номер третьего из школьников, дни рождения которых являются чётными числами. Нужно составить программу, которая будет читать даты рождения школьников из файла (даты записаны в строчку) и результат программы выведет в этот же файл.
Код программы
PHP код:
var i,k,a:integer
p:array[1..60of integer
begin 
Randomize
repeat
writeln
('Введите кол-во школьников в шеренге ');
read(a);
until (a>=1)and (a<=60); 
For 
i:=1 to a do 
begin 
p
[i]:=1+Random(31); 
Write(p[i]:2,' '); 
end
Writeln
Writeln
k:=0;i:=1; while(k<>3) and (i<=a) do begin 
If p[imod 2=0 then 
k
:=k+1i:=i+1;end;if k=3 then 
Write
(i-1:2,' ') else write('net'); 
Writeln
Readln
end
kot_ вне форума   Ответить с цитированием

Старый 02.05.2017, 22:23
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Посмотрите, возможно проблема уже решалась с похожих топиках

Построение трапеции. Free Pascal
Чтение и запись из файла и в файл массива данных строковых переменных. Turbo Pascal

Старый 03.05.2017, 11:01   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от kot_ Посмотреть сообщение
Нужно составить программу, которая будет читать даты рождения школьников из файла (даты записаны в строчку) и результат программы выведет в этот же файл.
Это, конечно, ужжжжжжжасно сложно и безззззззумно трудно. Но я справился.
Код:
var
 i,k,N,p:Byte;
 f:Text;
Begin
 Assign(f,'dataf.txt');
 Rewrite(f);
 Randomize;
 repeat
  write('Enter the number of pupils in the row (N<61): ');
  readln(N);
 until N<=60;
 for i:=1 to N do
  begin
   p:=1+Random(31);
   Write(f,p:3);
  end;
 Writeln(f);
 Writeln(f);
 Close(f);
 Reset(f);
 k:=0;
 i:=1;
 Repeat
  Read(f,p);
  i:=i+1;
  if (p mod 2)=0 then k:=k+1;
 Until (k=3) or (i=N+1);
 Close(f);
 Append(f);
 if k=3 then
  writeln(f,'Pupil N ',i-1)
 else
  writeln(f,'No such pupils');
 Close(f);
End.
Vladimir_S вне форума   Ответить с цитированием
Старый 04.05.2017, 00:39   #3 (permalink)
Viewer
Banned
 
Регистрация: 06.03.2017
Сообщений: 788
Сказал(а) спасибо: 0
Поблагодарили 18 раз(а) в 4 сообщениях
Репутация: 5680
По умолчанию

FreePascal просили
Viewer вне форума   Ответить с цитированием
Старый 04.05.2017, 08:02   #4 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Цитата:
Сообщение от Viewer Посмотреть сообщение
FreePascal просили
Синтаксис практически одинаковый что у FreePascal, что у TurboPascal, так что Владимир Игоревич всё верно написал.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 04.05.2017, 09:33   #5 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Viewer Посмотреть сообщение
FreePascal просили
Дык... У меня он и есть. В нём и писано.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 05.05.2017, 01:39   #6 (permalink)
kot_
Новичок
 
Регистрация: 06.03.2017
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

А если делать без рандома. Первая строчка в файле - кол-во школьников, вторая - их даты рождения
kot_ вне форума   Ответить с цитированием
Старый 05.05.2017, 07:27   #7 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

А в чем проблема переделать? N - количество, p - даты рождения.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 05.05.2017, 20:15   #8 (permalink)
Viewer
Banned
 
Регистрация: 06.03.2017
Сообщений: 788
Сказал(а) спасибо: 0
Поблагодарили 18 раз(а) в 4 сообщениях
Репутация: 5680
По умолчанию

Цитата:
Сообщение от AlexZir Посмотреть сообщение
Синтаксис практически одинаковый что у FreePascal, что у TurboPascal, так что Владимир Игоревич всё верно написал.
А я и не сказал, что Владимир написал неправильно, я сказал, что это не совсем FreePascal.
FreePascal допускает совсем другие возможности - более краткие, интересные, высокоуровенные.
Viewer вне форума   Ответить с цитированием
Старый 06.05.2017, 11:17   #9 (permalink)
kot_
Новичок
 
Регистрация: 06.03.2017
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

не понятно как проверять чётность после того как удалю рандом
kot_ вне форума   Ответить с цитированием
Старый 06.05.2017, 18:07   #10 (permalink)
kot_
Новичок
 
Регистрация: 06.03.2017
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

уже разобрался
kot_ вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 13:37.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.