Pascal файлы
Дан файл содержащий текст на русском языке. Найти слово содержащее наибольшее количество указанных букв!!!
1) Разбиваешь строку на слова. (Раздел "Алгоритмы")
2) Забиваешь слова в массив.
3) Проверяешь кождое слово с нужной тебе буквой, если находишь то - inc(i).
4) Раздел "алгоритмы" поиск максимального.
Затем выводишь это слово с массива.
2) Забиваешь слова в массив.
3) Проверяешь кождое слово с нужной тебе буквой, если находишь то - inc(i).
4) Раздел "алгоритмы" поиск максимального.
Затем выводишь это слово с массива.
< L3X. (ICQ: 8721378, Mail - l3x@list.ru)
Наглядно сделал без файла, вводится строка и символ(ы) который надо найти. Думаю вам не составит труда загрузить в строку данные из файла:
[syntax='Pascal']
uses
crt;
var
wrd:array [0..100] of string;
a,x,b:array[0..100] of integer;
S,S1:string;
i,j,n,m,buf,o,p,max,l:integer;
k:char;
cnt:byte;
begin
ClrScr;
write('vvedite stroky: ');
readln(s);
S:=S+' ';
write('vvedite simvol dla poiska: ');
readln(k);
writeln;
// Разбиение строки на слова и запись их в массив.
while (s<>'')and(pos(' ',s)<>0) do
begin
inc(cnt);
wrd[cnt]:=copy(s,1,pos(' ',s)-1);
delete(s,1,pos(' ',s));
inc(j);
end;
// Подсчет количества введенного символа(ов) в каждом слове.
for I := 1 to j do
begin
s1:=wrd;
for n:=0 to length(s1) do
begin
if s1[n] in [k] then
inc(m);
end;
a:=m;
m:=0;
end;
// Поиск слова в котором наибольше встречается введенный символ(ы).
max:=a[1];
for i := 1 to j do
begin
if a>=max then max:=a;
end;
for l := 1 to j do
begin
// Вывод найденного слова на экран.
if a[l]=max then
writeln('Maksimolnoe kol-vo simvola "',k,'" v slove - ', wrd[l]);
end;
readln;
end.
[/syntax]
[syntax='Pascal']
uses
crt;
var
wrd:array [0..100] of string;
a,x,b:array[0..100] of integer;
S,S1:string;
i,j,n,m,buf,o,p,max,l:integer;
k:char;
cnt:byte;
begin
ClrScr;
write('vvedite stroky: ');
readln(s);
S:=S+' ';
write('vvedite simvol dla poiska: ');
readln(k);
writeln;
// Разбиение строки на слова и запись их в массив.
while (s<>'')and(pos(' ',s)<>0) do
begin
inc(cnt);
wrd[cnt]:=copy(s,1,pos(' ',s)-1);
delete(s,1,pos(' ',s));
inc(j);
end;
// Подсчет количества введенного символа(ов) в каждом слове.
for I := 1 to j do
begin
s1:=wrd;
for n:=0 to length(s1) do
begin
if s1[n] in [k] then
inc(m);
end;
a:=m;
m:=0;
end;
// Поиск слова в котором наибольше встречается введенный символ(ы).
max:=a[1];
for i := 1 to j do
begin
if a>=max then max:=a;
end;
for l := 1 to j do
begin
// Вывод найденного слова на экран.
if a[l]=max then
writeln('Maksimolnoe kol-vo simvola "',k,'" v slove - ', wrd[l]);
end;
readln;
end.
[/syntax]
< L3X. (ICQ: 8721378, Mail - l3x@list.ru)
Все намного проще, можно обойтись и без массива.
1. Разбиваем строку на слова (по очереди).
2. Берем очередное слово, считаем в нем количество указанных букв.
3. Если количество больше имеющегося - запоминаем это слово как новый локальный максимум.
4. Возвращаемся к п.2
1. Разбиваем строку на слова (по очереди).
2. Берем очередное слово, считаем в нем количество указанных букв.
3. Если количество больше имеющегося - запоминаем это слово как новый локальный максимум.
4. Возвращаемся к п.2
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Вопрос: Возможно ли взять с тектового файла, в ктором имена и даті рождения, человека с определённой датой рождения? Тоисть как обьяснить паскалю что имя, а что дата (год, месяц, день)?
вот что-то наваял, но что-то не получаеться, или постоянно відаёт ошибку или ешё что...
=====================
uses crt;
const n=10;
type stud=record
soname:string[15];
year,month:integer
end;
var F:text; St: string[35];
c:stud;
begin clrscr;
assign(F, 'example.txt');
reset(F);
while not eoln(F) do begin
readln(F,c.soname);
writeln(c.soname);
end;
readln(F);
while not eof(f) do
with c do
begin
readln(f, c.month);
if c.month=3 then
writeln(soname:10,year:6);
end;
writeln;
writeln('vivod s faila okon4en. to exit pres - Enter.');
readln;
end.
=======================
вот что-то наваял, но что-то не получаеться, или постоянно відаёт ошибку или ешё что...
=====================
uses crt;
const n=10;
type stud=record
soname:string[15];
year,month:integer
end;
var F:text; St: string[35];
c:stud;
begin clrscr;
assign(F, 'example.txt');
reset(F);
while not eoln(F) do begin
readln(F,c.soname);
writeln(c.soname);
end;
readln(F);
while not eof(f) do
with c do
begin
readln(f, c.month);
if c.month=3 then
writeln(soname:10,year:6);
end;
writeln;
writeln('vivod s faila okon4en. to exit pres - Enter.');
readln;
end.
=======================
Всё уже зделал. Теа закріта.