Государственный экзамен по информатике. Горбенко О.Д - 13 стр.

UptoLike

целых чисел 1..200. Найти максимальное число из тех чисел , которые
встретились более одного раза.
41. Даны 3 квадратных матрицы , которые записаны в файл . Вывести
номера тех из них, которые совпадают друг с другом.
42. Даны 3 квадратных матрицы , которые записаны в файл. Вывести
ту матрицу, произведение элементов главной диагонали которой
максимально.
43. Дан текстовый файл. Переписать его в другой файл, удалив все
строки максимальной длины .
44. Дана матрица целых чисел . Найти и напечатать последнюю из ее
строк с максимальным числом перемен знака.
45. Упорядочить строки заданной целочисленной матрицы по
возрастанию сумм элементов в строке.
46. Задана строка, представляющая запись константного
арифметического выражения . Строка содержит числа и знаки
арифметических операций +, -, *, /(деление нацело). Получить
постфиксную запись выражения .
47. Дана строка, представляющая запись арифметического выражения
с использование круглых скобок. Проверить правильность
расстановки скобок.
48. Создать текстовый файл, в котором строки - слова, разделенные
пробелами. Создать новый файл, заменив строки, оканчивающиеся
заданным словом (введенным с клавиатуры ), на пустые.
49. Создать файл целых чисел . Заполнить квадратную матрицу
заданного размера числами из этого файла. Проверить , есть ли в
сформированной матрице строки, соответствующие элементы которых
пропорциональны с одним коэффиц
иентом. (Например , 1,2,3,4,5 и
3,6,9,12,15).
50. Создать текстовый файл, в котором строки - слова, разделенные
пробелами. Вывести строки, содержащие два заданных слова.
if L <> Nil then (* если список не пуст *)
if L^.Info = E then (* если первое звено является удаляемым *)
begin
N := L; (* запоминаем указатель на удаляемое звено*)
L := L^.Next; (* удаляем звено из списка *)
dispose( N ); (* освобождаем память *)
BList_DelElem2 := True
end
else BList_DelElem2 := BList_DelElem2 ( L^.Next, E )
else BList_DelElem2 := False
end;
(* Список с заглавным звеном *)
function ZList_DelElem (L: TList; E: TElem): Boolean;
var
N: TList; (* указатель на удаляемое эвено списка *)
P: TList; (* вспомогательный указатель для поиска *)
(* звена списка, предшествующего удаляемому *)
found: Boolean; (* признак : найден ли элемент E в списке ? *)
begin (* ищем звено , предшествующее удаляемому *)
found := False; P := L;
while not found and (P^.Next<>Nil) do
if P^.Next^.Info = E then
found :=True
else P := P^.Next;
if found then (* если найдено удаляемое звено *)
begin
N := P^.Next;(*запоминаем указатель на удаляемое звено*)
P^.Next := N^.Next; (* удаляем звено из списка *)
dispose( N ) (* освобождаем память *)
end;
ZList_DelElem := found
end;
{ 5. Инверсия списка }
(* Список без заглавного звена. *)
procedure BList_Invert (var L: TList);
var H: TList; (* вспомогательный указатель *)
P: TList; (* указатель на обработанный элемент списка *)
begin
P := Nil;
13
36
 if L <> Nil then (* если список не пуст *)                         целых чисел 1..200. Найти максимальное число из тех чисел, которые
   if L^.Info = E then (* если первое звено является удаляемым *)   встретились более одного раза.
    begin
     N := L; (* запоминаем указатель на удаляемое звено*)           41. Даны 3 квадратных матрицы, которые записаны в файл. Вывести
     L := L^.Next; (* удаляем звено из списка *)                    номера тех из них, которые совпадают друг с другом.
     dispose( N ); (* освобождаем память *)
     BList_DelElem2 := True                                         42. Даны 3 квадратных матрицы, которые записаны в файл. Вывести
    end                                                             ту матрицу, произведение элементов главной диагонали которой
   else BList_DelElem2 := BList_DelElem2 ( L^.Next, E )             максимально.
 else BList_DelElem2 := False
end;                                                                43. Дан текстовый файл. Переписать его в другой файл, удалив все
                                                                    строки максимальной длины.
(* Список с заглавным звеном *)
function ZList_DelElem (L: TList; E: TElem): Boolean;               44. Дана матрица целых чисел. Найти и напечатать последнюю из ее
var                                                                 строк с максимальным числом перемен знака.
 N: TList; (* указатель на удаляемое эвено списка *)
 P: TList; (* вспомогательный указатель для поиска *)               45. Упорядочить строки заданной целочисленной матрицы по
         (* звена списка, предшествующего удаляемому *)             возрастанию сумм элементов в строке.
 found: Boolean; (* признак: найден ли элемент E в списке ? *)
begin (* ищем звено, предшествующее удаляемому *)                   46. Задана строка, представляющая запись константного
 found := False; P := L;                                            арифметического выражения. Строка содержит числа и знаки
 while not found and (P^.Next<>Nil) do                              арифметических операций +, -, *, /(деление нацело). Получить
  if P^.Next^.Info = E then                                         постфиксную запись выражения.
   found :=True
  else P := P^.Next;                                                47. Дана строка, представляющая запись арифметического выражения
  if found then (* если найдено удаляемое звено *)                  с использование круглых скобок. Проверить правильность
    begin                                                           расстановки скобок.
     N := P^.Next;(*запоминаем указатель на удаляемое звено*)
     P^.Next := N^.Next; (* удаляем звено из списка *)              48. Создать текстовый файл, в котором строки - слова, разделенные
     dispose( N )     (* освобождаем память *)                      пробелами. Создать новый файл, заменив строки, оканчивающиеся
    end;                                                            заданным словом (введенным с клавиатуры), на пустые.
 ZList_DelElem := found
end;                                                                49. Создать файл целых чисел. Заполнить квадратную матрицу
                                                                    заданного размера числами из этого файла. Проверить, есть ли в
{ 5. Инверсия списка }                                              сформированной матрице строки, соответствующие элементы которых
(* Список без заглавного звена. *)                                  пропорциональны с одним коэффициентом. (Например, 1,2,3,4,5 и
procedure BList_Invert (var L: TList);                              3,6,9,12,15).
var H: TList; (* вспомогательный указатель *)
   P: TList; (* указатель на обработанный элемент списка *)         50. Создать текстовый файл, в котором строки - слова, разделенные
begin                                                               пробелами. Вывести строки, содержащие два заданных слова.
 P := Nil;

                                36                                                                    13