
- •Сборник задач по структурному программированию
- •Оглавление
- •Аннотация
- •Введение
- •Раздел 1
- •Работа с простыми типами данных
- •I a b c результат (можно/ нельзя)
- •Пример 1.1.1
- •Var hour,minute,n:longint;
- •Пример 1.1.2.
- •Var X,s,p:real;
- •I,n:integer;
- •Работа с символами, строками и текстом.
- •3 Слова длины 8 букв и т. Д.
- •Пример 1.2.1
- •Var s:string[80];
- •I,k:integer;
- •Разработка структурированных программ с использованием процедур и функций.
- •Пример 1.3.
- •Var I:word;
- •Var I:word;
- •X:integer;
- •I,m:word;
- •Работа с файлами разных типов.
- •Пример 1.4.
- •I: word;
- •Var X:integer;
- •Var I:word;
- •Var X:integer;
- •Inc(X);{Количество слов будет на 1 меньше!!}
- •Var p:boolean;
- •If p then
- •Var j:integer;
- •Var k,l:byte;
- •Динамические структуры данных. Списки.
- •Пример 1.5.
- •Var lp,pList,pStart : pEl_list;
- •I,oi,kol: integer; {переменные для работы с меню}
- •Insert_list(li);
- •Var I:integer;
- •Var I:integer;p:boolean;
- •Var k:char;
- •1: Begin dialog;
- •2: Begin dialog;
- •3: Begin dialog;
- •4: Begin
- •If noswap then begin
- •5: Begin
- •Var I:integer;
- •Vivod(2,2,25);
- •Решение графических задач
- •Пример 1_6.
- •Var dr,md:integer;
- •X,y,x1,y1,x2,x3,y2,y3,r:integer;
- •Var a:real;
- •Раздел 2
- •Работа с графическими объектами
- •Пример 2.1
- •X,y: real;
- •Var f1,f2:real;
- •Var gd,gm:integer;
- •Xb,xe,I,j:integer;
- •Работа с объектами- векторами
- •Пример 2.2
- •Var t:tPerson;
- •Interface
- •Implementation
- •I:integer;
- •I:integer;
- •I,j:integer;
- •Var m:integer;
- •Init(m);
- •Insert;
- •Работа с объектами - списками.
- •Пример 2.3
- •Interface
- •Implementation
- •Var Pcur1:t_el;
- •Var fname:ss;
- •Var s1:ss; p:byte; I:byte;
- •Var I:integer;
- •Interface
- •Implementation
- •Var Mylt:my_list;
- •Разработка объектов- таблиц.
- •Работа со структурами данных типа дерево.
- •Inf: integer;
- •Пример 2.5.
- •Interface
- •Implementation
- •Var newnode:pnode;
- •X,nl,nr:integer;
- •Var I: word;
- •Var q:pnode;
- •Разработка многомодульных задач.
- •Приложение.
- •Interface
- •Ik:word;{количество записей}
- •IEl:elmnt;
- •Var init_Ok:boolean;
- •Implementation
- •Var I:word;
- •Var m:word;
- •Var I:word;
- •If n then begin
- •Var I:word;
- •Var I: word;
- •Var I:word;{при выходе уничтожаем все списки}
- •Interface
- •Implementation
- •1: Begin
- •2: Begin
- •3: Begin
- •1: Begin
- •2: Begin
- •I:byte;
- •1: Begin
- •2: Begin
- •3: Begin
- •4: Begin
- •Var stop:boolean;
Пример 1.1.1
Идет N-ая секунда суток. Определить полное количество часов и минут в заданный момент времени, считая от начала суток.
program Number_1_1;
Var hour,minute,n:longint;
{Количество секунд в полных сутках равно 86 400, что требует
рассмотрения решения задачи только с длинными целыми}
ch:char;
begin
writeln(' Работа первой программы');
repeat
writeln('Ведите значение секунд');
readln(n);
hour:=n div 3600;
minute:= n div 60 -hour*60;
writeln('Получено часов= ',hour,' минут= ',minute);
writeln('Еще хотите проверить время?- y or n');
readln(ch);
until ch='n';
end.
Вычисление рядов.
В этом разделе задачника необходимо использовать простейшие циклические алгоритмы для вычисления сумм и произведений. Для решения предлагаемых задач надо разработать алгоритмы, обеспечивающие накопление сумм, вычисление факториала натуральных чисел, накопление степеней чисел и вычисление знакопеременных членов рядов ε .
1.1.31.
1.1.32.
1.1.33.
1.1.34.
1.1.35.
1.1.36.
1.1.37.
1.1.38.
1.1.39.
1.1.40.
1.1.41.
1.1.42.
1.1.43.
1.1.44.
1.1.45.
1.1.46.
1.1.47.
1.1.48.
1.1.49.
1.1.50.
Пример 1.1.2.
Дан
ряд
.
Найти сумму ряда для любого заданного
количества членов ряда n и значенияX.
program Number_1_2;
{Этот пример показывает простейшую алгоритмизацию
при вычислении знакопеременного ряда.
Просьба обратить внимание на формирование
каждого члена ряда и знака этого члена.}
Var X,s,p:real;
I,n:integer;
ch:char;
begin
writeln('Работа второй программы');
repeat
writeln('Ведите количество членов ряда');
readln(n);
writeln('Введите значение x');
readln(x);
s:=0;
p:=1;
for i:=1 to n do
begin
p:=-p*x/i;
s:=s+p;
end;
writeln('Результат вычисления ряда S=',s:10:5);
writeln('Будете еще вычислять ряд?');
readln(ch);
until ch='n';
end.
Работа с символами, строками и текстом.
Работа с текстовыми данными предполагает использование типов данных CHAR или STRING соответствующей длины. Для обработки данных этого типа в языках предлагается, кроме обычных операций, набор функций и процедур существенно сокращающих записи операций типа поиска символа в строке- POS(s1,s), вставки символа Insert(s1,s,n), удаление символа Delete(s,n,m), копирование символа строки Copy(s,n,m), определение длины строки Length(s), слияние строк- конктенация Concat(s1,s2,...,sn).
Вводится некоторое количество строк. В каждой строке - последовательность слов, разделенных хотя бы одним пробелом. Расположить в каждой строке слова по возрастанию их длины.
Дана строка, длиной не более 80 символов. Подсчитать количество повторений каждой встречающейся в строке буквы. Напечатать результат обработки в форме:
< буква > < количество повторений > < исходная строка>
Дана строка символов А. Удалить из строки все повторяющиеся символы, вывести исходную строку и результат обработки.
Дана строка из N букв. Разбить строку по m букв. Вывести исходную строку и результат обработки строки.
Дана строка из N букв. Разбить строку на K слов, в каждом из которых не более m букв. Вывести исходную строку и результат обработки строки.
Дана последовательность из строк с сообщениями: город, время вылета самолета, время в пути. Написать программу упорядочивания сообщений по времени в пути. Вывести исходные данные и результат обработки.
Дана последовательность слов в виде некоторого текста. К каждому слогу в словах текста добавить по новому слогу -”NO”. Слова в исходном тексте разделяются, по крайней мере, хотя бы одним пробелом. Вывести исходный текст и результат обработки текста.
Дан текст из некоторого количества предложений. Предложения разделяются знаком “;”. Разделить текст на отдельные предложения по этому знаку. Вывести исходный текст и результат обработки текста.
Дана строка из неизвестного заранее количества букв. Упорядочить все символы в строке по алфавиту. Вывести исходную строку и результат обработки строки.
Дана английская фраза из слов, разделенных хотя бы одним пробелом. Расположить слова по одному в каждой строке и упорядочить слова по алфавиту. Вывести исходную строку и результат обработки строки.
Вводится произвольное количество строк. Определить сколько раз в каждой строке повторяются одинаковые буквы. Вывести исходные строки и результат обработки строк.
Вводится произвольный текст из неизвестного количества строк. Разделить текст на строки и упорядочить по 1-ой букве строки. Конец каждой строки может быть любым из символов “. , ;”. Вывести исходный текст и результат обработки .
“Это я знаю и помню прекрасно пи многие знаки мне лишни напрасны”. Ввести фразу и напечатать полученное значение числа . Проверить работоспособность программы на любом произвольном тексте. Вывести исходный текст и результат вычислений.
Дан текст из слов, разделенных пробелами. Выделить из текста слова, состоящие их 4, 5, 6 букв. Напечатать исходный текст и результат его обработки .
Дана строка из неизвестного количества символов. Исключить из последовательности K-ый элемент, сжать строку. Вставить за M-ым элементом новый элемент. Количество удалений и вставок - любое. Вывести исходную строку и все результаты преобразований.
Задан текст из латинских букв. Вывести в алфавитном порядке все буквы, которые встречаются в тексте только один раз. Вывод исходного текста обязателен.
Дан текст из K символов. Преобразовать текст, заменив все не одиночные пробелы одним пробелом, все точки - точкой с запятой , все многоточия - одной точкой. Вывести исходный текст и результат обработки текста.
Вводится последовательность строк. Определить для каждой строки количество слов разной длины. Например,
в i -ой строке 5 слов длины 4 буквы