
- •Найти подстроку в заданной строке (Егор)(Как мне кажется, найти подстроку в строке это значит найти индекс с которого начинается подстрока в строке)
- •Дан текстовый файл, вывести слово true если в нём встречается буква «a» и вывести false, если не встречается.(Юра)
- •6. Вывести на экран 5 строк, введённых с клавиатуры и отсортировать методом вставки по возрастанию длины строки.(Тома)
- •7. Вывести на экран 5 строк, введённых с клавиатуры и отсортировать методом пузырька по алфавиту.(Макс Пугачёв)
6. Вывести на экран 5 строк, введённых с клавиатуры и отсортировать методом вставки по возрастанию длины строки.(Тома)
Program Exam6;
uses crt;
{A-массив
из строк, i,j
–счётчики циклов,str-строка}
var A:StrMas; i,j:byte;str:string;
Procedure swap(var x,y:string);
var temp:string;
begin
{Всё
что красненьким это процедура сортировки
вставками (swap-меняет местами строки,
sort использует swap и сортирует их)Это
есть в лекции.}
end;
Procedure Sort(var A1:StrMas);
var i,j,l:byte;
begin
a1[0]:='';
For i:=2 to 5 do
begin
j:=i;
while
length(a1[j])<length(a1[j-1]) do
{Длина
строки}
swap(a1[j],a1[j-1]);
dec(j);
end;
end;
{Цикл
вывода отсортированных строк}
writeln (a1[l]);
end;
begin clrscr; {Начало основной программы}
{Цикл
ввода 5-ти строк с клавиатуры} {Приглашение
на ввод строки} {Читаем
введённую строку} {Записываем
её в массив А из строк}
begin
write('Vvedite stroku',i ,'->');
readln(str);
a[i]:=str;
end;
writeln('Posle sortirovki ');
Sort(A);{Вызываем процедуру}
writeln;
readkey;
end.
7. Вывести на экран 5 строк, введённых с клавиатуры и отсортировать методом пузырька по алфавиту.(Макс Пугачёв)
Program Exam7;
uses crt;
type StrMas=array[1..5] of string; {Задаём тип - массив из строк}
{A-массив
из строк, i,j
–счётчики циклов,str-строка}
Procedure swap(var x,y:string);
var temp:string;
begin
temp:=x; x:=y; y:=temp;
end;
Procedure Sort(var A1:StrMas);
var i,j,l:byte;
{Всё
что красненьким это процедура сортировки
«пузырьком» (swap-меняет местами строки,
sort использует swap и сортирует их)Это
есть в лекции.}
For i:=1 to 4 do
For j:=5 downto 2 do
if a1[j]<a1[j-1] then
swap(a1[j],a1[j-1]);
{Цикл
вывода отсортированных строк}
writeln (a1[l]);
end;
begin clrscr; {Основная программа}
For i:= 1 to 5 do
{Цикл
ввода 5-ти строк с клавиатуры} {Приглашение
на ввод строки} {Читаем
введённую строку} {Записываем
её в массив А из строк}
write('Vvedite stroku ',i ,'->');
readln(str);
a[i]:=str;
end;
writeln('Posle sortirovki ');
Sort(A);{Вызов процедуры}
writeln;
readkey;
end.
c
– символ, который вводим, при наборе
текста. s
– заданный символ. Text – текст, который
набираем(строка) index
- переменная для фиксации индекса
последнего появления заданного символа
s.
Program Exam8;
uses crt;
var c,s:char; text:string;index,i:byte;
Procedure Obrab(var index1:byte; text1:string; s1:char);
{Длина
строки
text}
{Цикл
от первого до последнего символа строки
text,
если первый элемент(символ)строки равен
заданному s, то тогда фиксируем его
индекс
index1:=
j}
For j:=1 to length(text1) do
if text1[j]=s1 then index1:= j;
end;
begin clrscr;
write('Vvedite zadanniy simvol '); {Ввод заданного сивола s}
readln(s);
write('Vvedite text i nazhmite Ins: ');
{Цикл
ввода текста} {Используем
бесконечный цикл с предусловием,
прерываем ввод символов по нажатию
Ins} {Читаем
символ без его вывода на экран} {Проверяем
является ли нажатая кдавиша
функциональной(Ins,Del,End…),
признак функц.клавиши- её код начинается
с 0. Если код не начинается с 0(if
c<>#0),
записываем символ в строку text(text:=text
+ c)
и выводим его(write(c)),
иначе считываем повторно код сканирования
функц. клавиши и проверяем совпадает
ли её код сканирования с кодом Ins
(c:=readkey;
if
c=#82
then
break)
если да, то выходим из цикла break.}
while TRUE do
begin
c:=readkey;
if c<>#0 then
begin
text:=text + c;
write(c);
end
else
begin
c:=readkey;
if c=#82 then break;
{Код
сканирования Ins}
{Вызываем
процедуру, она возвращает значение
index(последнее появление заданного
символа s)}
Obrab(index,text,s);
writeln;
writeln('Sleduushiy za poslednim ', s, ' simvol ',text[index+1]);
{Выводим
следующий за последним появлением
заданного} Конник
придрался к тому, что в условии написано,
что выходной параметр символ, а у меня
выходной параметр индекс…
end.
9. Если нажата клавиша с дополнительной клавиатуры(функциональная:Ins,Del,Home,PgDn…), то вывести символ клавиши и его код сканирования, иначе, если нажата обычная клавиша, вывести сообщение об ошибке.Обработка в осн. программе. (Люся)(Формулировка задания неточная).
Program Exam9;
uses crt;
var c: char;
begin clrscr;
writeln(' Klavisha | Cod ');
{Цикл
чтения клавиш} {Используем
бесконечный цикл с предусловием,
прерываем по нажатию обычной клавиши,
перед этим выводим сообщение об ошибке} {Читаем
символ без его вывода на экран} {Проверяем
является ли нажатая кдавиша
функциональной(Ins,Del,End…),
признак функц.клавиши- её код начинается
с 0. Если код не начинается с 0(if
c<>#0),выводим
сообщение об ошибке Error!!!
и выходим из цикла break;
, иначе считываем повторно код сканирования
функц. клавиши и выводим символ,
соответствующий коду сканирования и
сам код сканирования(c:=readkey;
writeln(c:4,
' | ',ord(c))
Вывести
код получилось, а название клавиш нет,
не знаю как…
while true do begin
c:= readkey;
if c <> #0 then
begin
writeln('Error!!! ');
break;
end
else
begin
c:= readkeyж
writeln(c:4, ' | ',ord(c))
end;
end;
readkey;
end.
Код сканирования |
Клавиша |
71 |
Home (начало) |
72 |
Стрелка вверх |
73 |
PgUp (страница вверх) |
75 |
Стрелка влево |
77 |
Стрелка вправо |
79 |
End (конец) |
80 |
Стрелка вниз |
81 |
PgDn (страница вниз) |
82 |
Ins (вставка) |
83 |
Del (удалить) |
84-93 |
F11-F20 (Shift-F1 - Shift-F10) |
