: : Разделы сайта : :
: : Календарь : :
: : Архивы : :
onsite.ru - Профессиональный построитель сайтов
: : &&&&&&&&& : :

Обратная связьСвязь с администрацией

 

Обработка текстовых файлов Pascal

Текстовые файлы


Имеется
текстовый файл. Напечатать:


а) его первую строку;

б) его пятую строку;

в) его первые 5 строк;

г) его строки с sy-u no s2-ro;

д) весь файл.

Решение:

var
f:text;
fam:string[50];
i,s1,s2:integer;
begin
assign(f,'c:\bd.txt');
reset(f);
writeln ('Вывод первой строки');
readln(f,fam);
writeln (fam);
close(f);
reset(f);
writeln ('Вывод пятой строки');
for i:=1 to 5 do
readln (f,fam);
writeln (fam);
writeln (fam);
close(f);
reset(f);
writeln ('Вывод пяти строки');
for i:=1 to 5 do begin
readln (f,fam);
writeln (fam);
end;
writeln (fam);
close(f);
reset(f);
writeln ('Вывод c с-1 по с-2');
readln (s1,s2);
for i:=1 to s1 do
readln(f,fam);
 writeln (fam);
for i:=s1+1 to s2 do begin
readln (f,fam);
writeln (fam);
end;
close(f);
reset(f);
writeln ('Вывод всегой файла');
while not eof(f) do begin
readln (f,fam);
writeln (fam);
end;
close(f);
end.


Имеется текстовый файл, содержащий 20 строк. Переписать каждую его строку в массив в том же порядке.

  1. Имеется текстовый файл. Подсчитать: а) количество строк, начинающихся с букв «А» или «а»; б) количество строк, в которых имеется ровно 5 букв «и».


Решение:

var
a:array [1..6] of string;
f:text;
fam:string[50];
i,s1,s2:integer;
begin
assign(f,'c:\bd.txt');
reset(f);
for i:=1 to 6 do begin
readln (f,fam);
a[i]:=fam;
end;
for i:=1 to 6 do
writeln (a[i]);
close(f);
end.

  1. Имеется текстовый файл. а) Найти длину самой длинной строки.      б) Найти номер самой длинной строки. Если таких строк несколько, то найти номер одной из них.

      в) Напечатать самую длинную строку. Если таких строк несколько, то напечатать первую из них.


Решение:

var
f:text;
fam:string;
i,n:integer;
begin
assign(f,'c:\bd.txt');
reset(f);
while not eof(f) do begin
readln (f,fam);
if (fam[1] = 'a')  or (fam[1] = 'A') then
n:=n+1;
end;
writeln (n);
close(f);
end.

  1. Имеется текстовый файл. Выяснить, имеется ли в нем строка, начинающаяся с буквы «т». Если да, то определить номер первой из таких строк.
  2. Имеется текстовый файл. Напечатать:       а) первый символ первой строки;       б) пятый символ первой строки;       в) первые 10 символов первой
    строки;       г) символы с га-го по /та-й в первой строке (г а < /га);
  3.       д) первый символ второй строки;       е) А-й символ га-й строки.

 

  1. Имеется текстовый файл. Переписать его строки в другой файл. Порядок строк во втором файле должен:       а) совпадать с порядком
    строк в заданном файле;       б) быть обратным по отношению к порядку строк в заданном файле.
  2. Имеется текстовый файл. Все четные строки этого файла записать во второй файл, а нечетные — в третий файл. Порядок следования строк сохраняется.
  3. Имеются два текстовых файла с одинаковым числом строк. Переписать с сохранением порядка
    следования строки первого файла во второй, а строки второго файла — в первый.
    Использовать вспомогательный файл.
  4.   Создайте текстовый файл на диске, заполненный N целыми числами, вводимыми с клавиатуры. Выведите на экран произведение этих чисел.
  5.  Дан текстовый файл. Посчитать количество символов в каждой строке. Запишите результаты вычислений в файл output.txt.
  6.  Дан текстовый файл. Найти ВСЕ первые буквы каждой строки файла и дописать их в тот же файл.
  7. Создайте файл на диске, заполненный 15 целыми числами, вводимыми с клавиатуры.
  8.  Выведите на экран содержимое текстового файла, содержащего целые числа.
  9. Посчитайте сумму действительных чисел, записанных в файле input.txt, и запишите результат
    вычисления в конец файла input.txt.
  10.  Дан файл f, компоненты которого являются целыми числами. Получить в файле g все компоненты
    файла f: а) являющимися четными числами; б) делящиеся на 3 и не делящиеся на 7.
  11.  Дописать в файл output.txt те строки, в которых имеется более 5 символов.
  12.  Найти среднее арифметическое отрицательных чисел файла. Дописать в файл output.txt
  13.   Задача: дан текстовый файл {На данный момент это просто файл формата .PAS, в котором
    находятся несколько строчек беспорядочно введенных символов с клавиатуры}.
    Выписать в новый файл те строчки данного файла, которые начинаются и
    заканчиваются одним и тем же символом.
  14.   Создать файл целых чисел Num.txt. Ввод выполнять до введения числа 0.
    а)Вывести содержимое файла на экран.
    б) Сосчитать сумму элементов файла и записать результат в файл sum.txt.
  15.   Написать программу, которая создаёт текстовый файл. Из него создать новый текстовой файл, который
    будет содержать в себе каждый третий символ.
  16.  Написать программу, которая считывает слова из одного текстового файла и записывает их в
    столбик в другой текстовый файл.
  17.   Создать текстовый файл f, состоящий из 2-3 строк текста произвольной длины.
    Перезаписать содержание файла f в файл h, так, чтобы в файле h все строки были
    по 20 символов (кроме последней) и в начале каждой строки стоял ее номер.
  18.   Даны текстовые файлы f1 и f2. Переписать с сохранением порядка следования компоненты
    файла f1 в файл f2, а компоненты файла f2 в файл f1. Использовать
    вспомогательный файл h.
  19.  Даны текстовые файлы f и g. Записать в файл h сначала компоненты файла f, затем -
    компоненты файла g с сохранением порядка.
  20.  Дан файл f,компоненты которого являются целыми числами. Получить в файле g все компоненты
    файла f: а) являющимися четными числами; б) делящиеся на 3 и не делящиеся на 7;
    в) являющимися точными квадратами.
  21.  Дан файл f, компоненты которого являются целыми числами. Никакая из компонент файла не
    равна нулю. Файл f содержит столько же отрицательных чисел, сколько и
    положительных. Используя вспомогательный файл h, переписать компоненты файла f
    в файл g так, чтобы в файле g:

    a) не было двух соседних чисел с одинаковым знаком;

    b) вначале шли положительные, затем отрицательные числа;

    c) числа шли в следующем порядке: два положительных, два отрицательных, два
    положительных, два отрицательных и т.д. (предполагается, что число компонент в
    файле f делится на 4).
  22.  Дан символьный файл f: а) подсчитать число вхождений в файл сочетаний 'ab'; б)
    определить входит ли в файл сочетание 'abcdefgh'; в) подсчитать число вхождений
    в файл каждой из букв 'a','b','c','d', 'e','f' и вывести результат в виде
    таблицы

    a --> Na b --> Nb c --> Nc

    d --> Nd e --> Ne f --> Nf

    где Na, Nb, Nc, Nd, Ne, Nf - числа вхождений соответствующих букв.
  23.  Дан файл f, компоненты которого являются целыми числами. Получить файл g, образованный из
    файла f исключением повторных вхождений одного и того же числа.
  24.   Дан файл f, компоненты которого являются целыми числами. Никакая из компонент файла не
    равна нулю. Файл f содержит столько же отрицательных чисел, сколько и
    положительных. Используя вспомогательный файл h, переписать компоненты файла f
    в файл g так, чтобы в файле g:

    a) не было двух соседних чисел с одинаковым знаком;

    b) вначале шли положительные, затем отрицательные числа;

    c) числа шли в следующем порядке: два положительных, два отрицательных, два
    положительных, два отрицательных и т.д. (предполагается, что число компонент в
    файле f делится на 4).
  25.  Дан файл f, компоненты которого являются целыми числами. Записать в файл g наибольшее
    значение первых пяти компонент файла f, затем - следующих пяти компонент и т.д.
    Если в последней группе окажется менее пяти компонент, то последняя компонента
    файла g должна быть равна наибольшей из компонент файла f, образующих последнюю
    (неполную) группу.
  26.   Дан символьный файл f. Группы символов, разделенные пробелами (одним или
    несколькими) и не содержащие пробелов внутри себя, будем называть словами.
    Удалить из файла все однобуквенные слова и лишние пробелы. Результат записать в
    файл g.
  27.  Сведения об ученике состоят из его имени и фамилии и названия класса (года обучения и
    буквы), в котором он учится. Дан файл f, содержащий сведения об учениках школы:


    a) выяснить, имеются ли в школе однофамильцы;

    b) выяснить, имеются ли однофамильцы в каких-либо параллельных классах;

    c) выяснить, имеются ли однофамильцы в каком-нибудь классе;

    d) ответить на вопросы а)-в), но в отношении учеников, у которых совпадают и
    имя, и фамилия;

    e) выяснить, в каких классах насчитывается более 35 учащихся;

    f) выяснить на сколько человек в восьмых классах больше, чем в десятых;

    g) собрать в файле g сведения об учениках 9-х и 10-х классов, поместив вначале
    сведения об учениках класса 9а, затем 9б и т.д., затем 10а, 10б и т.д.
  28.  Дан файл f, содержащий те же сведения об учениках, что и в предыдущей задаче, и
    дополнительно отметки, полученные учениками в последней четверти.

    a) выяснить, сколько учеников школы не имеют отметок ниже четырех;

    b) собрать в файле g сведения о лучших учениках школы, т.е. об учениках, не
    имеющих отметок ниже четырех и по сумме баллов не уступающих другим ученикам
    своего и параллельных классов.
  29.  Сведения об автомобиле состоят из его марки, номера и фамилии владельца. Дан файл f,
    содержащий сведения о нескольких автомобилях. Найти: а) фамилии владельцев и
    номера автомобилей данной марки; б) количество автомобилей каждой марки.
    Найденные данные записать в файл g.
  30.   Дан файл f,содержащий сведения о книгах. Сведения о каждой из книг - это фамилия автора,
    название и год издания. 1) Найти названия книг данного автора, изданных с 1960 г. 2) Определить,
    имеется ли книга с названием "Информатика". Если да, то сообщить
    фамилию автора и год издания. Если таких книг несколько, то сообщить имеющиеся
    сведения обо всех книгах.
  31.  Дан файл f, содержащий сведения о кубиках: размер каждого кубика (длина ребра в
    сантиметрах), его цвет (красный, зеленый, желтый или синий) и материал
    (деревянный, металлический, картонный). Найти: а) количество кубиков каждого из
    перечисленных цветов и их суммарный объем; б) количество деревянных кубиков с
    ребром 3 см
    и количество металлических кубиков с ребром, большим 5 см.