Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 21.11.2019
Сообщений: 12
1

Дан файл, содержащий различные даты

28.11.2019, 19:43. Показов 1582. Ответов 3

Author24 — интернет-сервис помощи студентам
Дан файл, содержащий различные даты. Каждая дата — это число, месяц и год. Найти даты, где месяц совпадает с месяцем ваш

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Type date = record  
day: byte; 
mouth: byte; 
age: integer; 
end; 
dt=array[1..100] of date; f=file of date; 
var s:dt; n:byte; 
 
procedure inp(var n:byte; var s:dt); 
var i:byte; 
begin 
for i:=1 to n do 
with s[i] do 
begin 
day:=random(1,30); 
mouth:=random(1,12); 
age:=1940+i*4; 
end; 
end; 
 
procedure inp_f(s:dt;n:byte;var fi:f); 
var i: integer; 
begin 
rewrite(fi); 
for i:=1 to n do 
begin 
write(fi, s[i]); 
end; 
close(fi); 
end; 
 
procedure outp_f(var fi:f); 
var 
a:date; 
begin 
reset(fi); 
writeln('День ','Месяц ','Год'); 
while not eof(fi) do 
begin 
read(fi, a); 
writeln(a:5); 
end; 
close(fi); 
end; 
 
 
 
var fi:f; p:string; 
x:boolean;
a:date;
begin 
write('Введите кол-во дат: '); readln(n); 
assign(fi,'C:\PABCWork.NET\1.dat'); 
inp(n,s); 
inp_f(s,n,fi); 
outp_f(fi); 
end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.11.2019, 19:43
Ответы с готовыми решениями:

Дан файл, содержащий различные даты. Каждая дата – это число, месяц и год. Найти год с наименьшим номером.
Дан файл, содержащий различные даты. Каждая дата – это число, месяц и год. Найти год с наименьшим...

Дан строковый файл, содержащий даты в формате
Дан строковый файл, содержащий даты в формате "день\месяц\год", причем под день и месяц отводится...

. Сформировать массив, содержащий различные даты. Каждая дата - это число, месяц и год. Используя сформированный массив, найти все весенние даты;
. Сформировать массив, содержащий различные даты. Каждая дата - это число, месяц и год. Используя...

Дан файл содержащий строки
дан файл содержащий строки напечатать 1 строку наименьшей длины. Результат вывести во 2 файл.

3
Модератор
9871 / 5239 / 3306
Регистрация: 17.08.2012
Сообщений: 16,008
28.11.2019, 22:09 2
Лучший ответ Сообщение было отмечено ertwq как решение

Решение

Замените
Pascal
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
var fi:f; p:string; 
x:boolean;
a:date;
v:byte;
begin 
write('Введите кол-во дат: '); readln(n); 
assign(fi,'C:\PABCWork.NET\1.dat'); 
inp(n,s); 
inp_f(s,n,fi); 
outp_f(fi);
write('Введите номер месяца ваш: ');
readln(v);
assign(fi,'C:\PABCWork.NET\1.dat');
reset(fi);
writeln('Даты, в которых месяц совпадает с месяцем ваш:');
while not eof(fi) do
with a do
read(fi, a);
if mouth = v then writeln(day:3, mouth:3, age:5);
end;
close(fi) 
end.
1
0 / 0 / 0
Регистрация: 21.11.2019
Сообщений: 12
29.11.2019, 20:24  [ТС] 3
Program1.pas(66) : Неизвестное имя 'mouth'

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
Type date = record  
day: byte; 
mouth: byte; 
age: integer; 
end; 
dt=array[1..100] of date; f=file of date; 
var s:dt; n:byte; 
 
procedure inp(var n:byte; var s:dt); 
var i:byte; 
begin 
for i:=1 to n do 
with s[i] do 
begin 
day:=random(1,30); 
mouth:=random(1,12); 
age:=1940+i*4; 
end; 
end; 
 
procedure inp_f(s:dt;n:byte;var fi:f); 
var i: integer; 
begin 
rewrite(fi); 
for i:=1 to n do 
begin 
write(fi, s[i]); 
end; 
close(fi); 
end; 
 
procedure outp_f(var fi:f); 
var 
a:date; 
begin 
reset(fi); 
writeln('День ','Месяц ','Год'); 
while not eof(fi) do 
begin 
read(fi, a); 
writeln(a:5); 
end; 
close(fi); 
end; 
 
 
var fi:f; p:string; 
x:boolean;
a:date;
v:byte;
begin 
write('Введите кол-во дат: '); readln(n); 
assign(fi,'C:\PABCWork.NET\1.dat'); 
inp(n,s); 
inp_f(s,n,fi); 
outp_f(fi);
write('Введите номер месяца ваш: ');
readln(v);
assign(fi,'C:\PABCWork.NET\1.dat');
reset(fi);
writeln('Даты, в которых месяц совпадает с месяцем ваш:');
while not eof(fi) do
with a do
read(fi, a);
if (mouth=v) then writeln(day:3, mouth:3, age:5);
close(fi) 
end.
0
Модератор
9871 / 5239 / 3306
Регистрация: 17.08.2012
Сообщений: 16,008
29.11.2019, 20:51 4
Забыли end; перед close(fi).

Замените
Pascal
62
63
64
65
66
67
68
  while not eof(fi) do
    begin
      read(fi, a);
      if (a.mouth=v) then writeln(a.day:3, a.mouth:3, a.age:5)
    end;
  close(fi)
end.
1
29.11.2019, 20:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2019, 20:51
Помогаю со студенческими работами здесь

Дан файл f, содержащий сведения об учениках
Доброго времени суток! Крайне необходима помощь экспертов в Pascal Вот задания: Дан файл f,...

Дан файл Bagazh, содержащий сведения ...
Багаж пассажира характеризуется количеством вещей и их общим весом. Дан файл Bagazh, содержащий...

Дан текстовый файл, содержащий cтроки.
Доброго времени суток. Такая вот задачка. Дан текстовый файл, содержащий строки. -найти...

Дан файл KAT, содержащий сведения о книгах
Дан файл KAT, содержащий сведения о книгах: 1) фамилия автора 2) название 3) год издания 4)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru