Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите решить 2 задачи.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
pippo
Очень прошу помоч с этими задачами,я в паскале не очень силён.Всю голову уже изломал! :o :wall: Заранее спасибо!
Задача№1
Создать текстовый фаил из 9 строк,в каждой строке до 69 символов.Определить сколько в тексте предложений.
Задача№2
Создать последовательный файл с полями а)фамилия б)улица в)пол г)возраст д)город.Запрограмировать диалог просмотра создания файла в поисках мужчин старше 60 лет! blink.gif
sintanial
Покажи что сделал, помогу исправить ошибки =) !
pippo
Первую задачу сам осилил......вторую ваще не знаю как делать.Пропустил лекцию mega_chok.gif
sintanial
вторая решается как я понял с Record - который пока что сам не очень знаю =), но ты начни, выложи свои начинания, форумчане помогут + юзай поиск, вроде такие задачки решались =)
pippo
Я совсем ничего не знаю про этот рекорд......лекций небыло, а задачки дают!Разбирайся сам как хочешь!А я вот ваще не могу сам разобраться wacko.gif
sintanial
Похожая ситуация, только у меня задание на базы данных =). Программа минимум в 400 строк, у не которых даже в группе до 1300 строк программа =)
pippo
Что ещё сказать,ЖЕСТЬ!!!Два дня уже ползаю по сайтам ничё найти не могу!
pippo
Подскажите почему не правильно считается кол-во предложений?
program LR8; 
uses crt;
type ahh=array[1..9] of string[69];
var f:text; a:ahh; i,j,sch:byte; b:string;
begin
assign(f,'file.txt');
rewrite(f);
for i:=1 to 9 do
begin
readln(a[i]);

writeln(f,a[i]);
end;
close(f);
sch:=0;
for i:=1 to 9 do
for j:=1 to 69 do
begin
b:='';
b:=a[i];
if b[j]='.' then sch:=sch+1;
end;
writeln('predl:= ',sch);
readln;
clrscr;
end.
Client
'...' -здесь сколько предложений? А остальные знаки корме точки?
pippo
Да это не важно, даже если я строго ставлю везде просто точки он выдаёт больше предложений!
Client
for i:=1 to 9 do 
for j:=1 to length(a[i]) do
begin
b:='';
b:=a[i];
if b[j]='.' then sch:=sch+1;
end;
sch:=sch+1; // это если есть еще символы после поледней точки
Вроде так...
pippo
А если их нет то он считает на одну точку больше!!!
Client
Сделай проверку последнего символа в строке
pippo
Ладно с первой задачей разобрался полность, сегодня уже защитился.Всем спасибо кто помогал!
По второй задаче накалякал что то, тока ничё не работает wacko.gif
program LR7;
uses crt;
TYPE L1=record
L.F,L.Y,L.D,L.M:string;
end;
var L:L1;
F1:file of L1;
F:string
c:char
begin
clrscr;
L.F=";
Assign(F1,'file.dan');
Rewrite(F1);
While e<>'q' do
begin
write ('Name');
readln(L.F);
write('pol');
readln(L.Y);
write('gorod');
readl(L.D);
write('vozrast');
readln(L.M);
write(F1);
c:=readkey;
end;
close(F1);
write('vvedite iskomuu vozrast');
readln(F);
reset(F1);
while not eof(F1) do
begin
read(F1,L);
if L.Y=F then
begin
writeln('show all given');
write('vozrast');
Writeln(L.F);
write('name')'
writeln(L.Y);
write('gorod');
writeln(L.D);
write('pol');
writeln(L.M);
end;
end;
close(F1);
write('konec:');
readkey;
end.
klem4
Цитата
Запрограмировать диалог просмотра создания файла в поисках мужчин старше 60 лет! blink.gif


Имеется в виду меню с 3 вариантами выбора:

-вывод всего файла на экран
-вывод записей с полем возраст>60
-выход

+ отдельно заполнение файла ?
pippo
Ну просто создать не текстовый фаил, сохранить его на диск, а на экран вывести мужчин старше 60!
-Alex-
Подправил прямо на форуме, поэтому не тестил.

program LR7;
uses crt;
TYPE L1=record
F,Y,D,M:string;
end;
var L:L1;
F1:file of L1;
F:string
key:integer;
c:char
begin
clrscr;
Assign(F1,'file.dat');
Reset(F1);
writeln('Будете добавлять данные в файл? (Y/N)');
readln(key);
If (key='Y') or (key='y') then
Begin
seek(F1,filesize(F1));
repeat
begin
write ('Name'); readln(L.F);
write('pol'); readln(L.Y);
write('gorod'); readl(L.D);
write('vozrast'); readln(L.M);
write(F1,L);
end;
c:=readkey;
writeln('Надо ещё добавлять данные? (Y/N)');
until (c='n') or (c='N');
close(F1);
end;
clrscr;
write('Мужчины старше 60: ');
reset(F1);
while not eof(F1) do
begin
if (L.Y=F) and (L.M>60) then
begin
read(F1,L);
writeln('show all given');
write('vozrast');
Writeln(L.F);
write('name')'
writeln(L.Y);
write('gorod');
writeln(L.D);
write('pol');
writeln(L.M);
end;
end;
close(F1);
write('konec');
readkey;
end.
pippo
Не работает не пойму почему(((
Alex J'Root
Только в начале создай сам файл "file.dat" в директории, где и прога.

program LR7;
uses crt;
TYPE L1=record
F,Y,D:string;
M:integer;
end;
var L:L1;
F1:file of L1;
F:string;
key:string;
c:char;
begin
clrscr;
Assign(F1,'file.dat');
Reset(F1);
writeln('Будете вводить данные? (Y/N)');
readln(key);
If (key='Y') or (key='y') then
Begin
seek(F1,filesize(F1));
repeat
begin
write ('Name: '); readln(L.F);
write('pol: '); readln(L.Y);
write('gorod: '); readln(L.D);
write('vozrast: '); readln(L.M);
write(F1,L);
end;
writeln('Надо вводить данные о новом пользователе? (Y/N)');
readln©;
until (c='n') or (c='N');
close(F1);
end;
clrscr;
writeln('Мужчины старше 60: ');
writeln;
reset(F1);
while not eof(F1) do
read(F1,L);
begin
if (L.M>60) and (L.Y='F') then
begin
writeln('show all given');
write('vozrast: ');
writeln(L.M);
write('name: ');
writeln(L.F);
write('gorod: ');
writeln(L.D);
write('pol: ');
writeln(L.Y);
end;
end;
close(F1);
write('konec');
readln;
end.

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.