Технический форум

Технический форум (http://www.tehnari.ru/)
-   Delphi, Kylix and Pascal (http://www.tehnari.ru/f43/)
-   -   Чтение данных из файла. Free Pascal - Free Pascal (http://www.tehnari.ru/f43/t253553/)

kot_ 02.05.2017 22:23

Чтение данных из файла. 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


Vladimir_S 03.05.2017 11:01

Цитата:

Сообщение от kot_ (Сообщение 2483818)
Нужно составить программу, которая будет читать даты рождения школьников из файла (даты записаны в строчку) и результат программы выведет в этот же файл.

Это, конечно, ужжжжжжжасно сложно и безззззззумно трудно. Но я справился.
Код:

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.


Viewer 04.05.2017 00:39

FreePascal просили :)

AlexZir 04.05.2017 08:02

Цитата:

Сообщение от Viewer (Сообщение 2484236)
FreePascal просили

Синтаксис практически одинаковый что у FreePascal, что у TurboPascal, так что Владимир Игоревич всё верно написал.

Vladimir_S 04.05.2017 09:33

Цитата:

Сообщение от Viewer (Сообщение 2484236)
FreePascal просили :)

Дык... У меня он и есть. В нём и писано.

kot_ 05.05.2017 01:39

А если делать без рандома. Первая строчка в файле - кол-во школьников, вторая - их даты рождения

AlexZir 05.05.2017 07:27

А в чем проблема переделать? N - количество, p - даты рождения.

Viewer 05.05.2017 20:15

Цитата:

Сообщение от AlexZir (Сообщение 2484289)
Синтаксис практически одинаковый что у FreePascal, что у TurboPascal, так что Владимир Игоревич всё верно написал.

А я и не сказал, что Владимир написал неправильно, я сказал, что это не совсем FreePascal.
FreePascal допускает совсем другие возможности - более краткие, интересные, высокоуровенные.

kot_ 06.05.2017 11:17

не понятно как проверять чётность после того как удалю рандом

kot_ 06.05.2017 18:07

уже разобрался


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

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.