
- •Вопрос №1.Цель, предмет и задачи изучения дисциплины.
- •Вопрос №3. Технология выполнения программ на языке тр в ide
- •Вопрос №4. Принципы алгоритмизации и программирования.
- •Вопрос №5. Этапы решения задач на эвм.
- •Вопрос №6. Алгоритм. Сущность, свойства.
- •Вопрос №7. Методы преобразования алгоритмов.
- •Вопрос №8. Основные приемы разработки алгоритмов.
- •Вопрос №9. Общая структура цикла и получение из нее структур циклов на языке Турбо Паскаль
- •Вопрос №14.
- •Int(X) – значением функции является целая часть вещественного числа X.
- •Вопрос №15. Структура программ и подпрограмм.
- •Вопрос№18. Обработка массивов.
- •Вопрос №19. Пример обработки текстов.
- •Вопрос №20. Порядок обработки текстовых файлов.
- •Вопрос №21. Стандартные файлы ввода-вывода.
- •Вопрос №22. Процедуры и функции ввода-вывода. Типы данных и форматы вывода.
- •Вопрос №23. Организация и использование процедур в языке Паскаль.
Вопрос №19. Пример обработки текстов.
Пример: создать файл с данными о студентах.
program tableStudentsofMyGroup;uses crt;
type
Person=record
Family:string;
mark:array[1..6] of Byte;
end;
var T1:text;
Student:array[1..20] of Person;
i,j,n:Integer;
begin
clrscr;
assign(t1,paramstr(1));rewrite(t1);
writeln('База Данных Студентов группы');
repeat
writeln('Введите число студентов в группе');
readln(n);
if (n>20) or (n<1) then writeln('Недопустимое количество');
until (n>=1) and (n<=20);
{Ввод данных}
for i:=1 to n do
with Student[i] do begin
write('Введите фамилию студента: '); readln(family);
write('Введите его оценки за прошлую сессию: ');
for j:=1 to 6 do
read(mark[j]);
readln;
end;
for i:=1 to n do
with Student[i] do begin
write(t1,family:20);
for j:=1 to 6 do
write(t1,mark[j]:3);
writeln;
end;
readln
end.
Пример: прочитать файл с данными о студентах и вывести фамилии на экран
program tableStudentsofMyGroup;uses crt;
const n=30;
type
Person=record
Family:string;
mark:array[1..6] of Byte;
end;
var T1:text;
Student:array[1..20] of Person;
i,j,n:Integer;
begin
clrscr;
writeln('База Данных Студентов группы');
assign(t1,paramstr(1));reset(t1);
until (n>=1) and (n<=20);
{Ввод данных}
n:=0;
while not eof(t1) do
with Student[i] do begin
read(t1,family);
for j:=1 to 6 do
read(t1,mark[j]);
readln;
end;
n:=n+1;
for i:=1 to n do
with Student[i] do begin
write(family:20);
for j:=1 to 6 do
write(mark[j]:3);
writeln;
end;
readln
end.
Пример: функция наличия файла на диске.
Function FileExist(FileName:String):Boolean;
Var F:filr;SaveFileMode:Byte;
Begin
Savefilemode:=filemode;
fileMode:=0;
assign(F,FileName);
{$I-}reset(f);{$I+};
Fileexist:=ioresult=0;
Close(f);filemode:=savefilemode;
Вопрос №20. Порядок обработки текстовых файлов.
Пример: копирование текстового файла по символам и по строкам. Отличия и ограничения.
Если копировать по строкам, то нужно помнить, что в одной строке для TP может быть максимум 255 символов.
Копирование по символам.
program copytext1;
var T1,T2:text;
ch:char;
begin
assign(T1,paramstr(1));reset(T1);
assign(T2,paramstr(2));rewrite(T2);
while not Eof(T1) do begin
while not eoln(T1) do begin
read(T1,ch);write(T2,ch);
end;
readln(T1);writeln(T2);
end;
end.
Копирование по строкам.
program copytext1;
var T1,T2:text;
s:string;
begin
assign(T1,paramstr(1));reset(T1);
assign(T2,paramstr(2));rewrite(T2);
while not Eof(T1) do begin
readln(T1,s);writeln(T2,s);
end;
end.
Удалить лишние пробелы между слов текстового файла используя булевские переменные.
program delpr1;
var T1,T2:text;
ch:char;
bool:boolean;
s:string;
begin
assign(T1,paramstr(1));reset(T1);
assign(T2,paramstr(2));rewrite(T2);
while not Eof(T1) do begin
bool:=true;
while not eoln(t1) do begin
while bool do begin
read(t1,ch);
if ch:=' ' then write(t2,ch) else bool:=false;
end;
write(t2,ch);
while ch<>' ' do
read(t1,ch);write(t2,ch);
write(t2,ch);
while ch=' ' do read(t1,ch);
end;
readln(t1);
writeln(t2);
end;
end.
Удалить лишние пробелы используя переменную состояния.
program delpr2;
var T1,T2:text;
ch:char;
Sost:1..3;
begin
assign(T1,paramstr(1));reset(T1);
assign(T2,paramstr(2));rewrite(T2);
while not Eof(T1) do begin
sost:=1;
while not eoln(T1) do
case sost of
1:begin
read(t1,ch);
if ch<>' ' then sost:=2;
write(t2,ch);
end;
2:begin
read(t1,ch);
if ch=' ' then sost:=3;
write(t2,ch)
end;
3:begin
read(t1,ch);
if ch<>' ' then begin sost:=2;write(t2,ch);end;
end;
end;
readln(T1);writeln(T2);
end;
end.