- •Билет №1:
- •I,j:Integer;
- •Билет №2:
- •Билет №3:
- •I,j:Integer;
- •//Логические константы
- •2) //Сравнения
- •3) //Логические операции
- •Билет №4:
- •Билет №6
- •Цикл с постусловием
- •3) Для того чтобы досрочно завершить виток цикла используется оператор Continue, для завершения цикла полностью – оператор Break.
- •Билет№7
- •Циклы с пред условиями
- •3)Отличие состоит в том что в цикле с постусловием цикл завершится в случае когда условие станет истинным, в цикле же с предустловием наоборот – ложным.
- •Билет №8:
- •Билет №9:
- •Program _Case;
- •1:Goto Met1;
- •2:Goto Met2;
- •Билет №10:
- •Многомерные массивы
- •I,j:Integer;
- •I:Integer;
- •IMax,iMin:Integer; {Наибольший и наименьший}
- •I:Integer;
- •Билет №11, 12:
- •Билет №13, 14:
- •Var //Раздел описаний подпрограммы
- •I:Integer;
- •Var //Раздел описаний подпрограммы
- •I:Integer;
- •X:String; //Раздел описаний основной программы
- •Билет №20: Оконные диалоги. Обработка ошибок
- •Билет №21:
- •Inherited Create; //Вызываем старый конструктор
- •Var I,j,k:Integer;
- •I,j:Integer;
- •I,j:Integer;
- •Inherited Destroy; //Вызываем старый деструктор
- •Билет №22:
- •Var //переменные:
- •Билет №23,24:
- •Билет №25: Битовые карты
- •3) Копирование изображений
- •Билет №26,27:
- •Билет №28:
- •Билет №29:
Билет №9:
1) Обыкновенное ветвление позволяет выбрать 1 из 2х вариантов, теоретически этого достаточно чтобы выбрать из многих вариантов, например если нужно выбрать из трёх, то проверяем сначала получается ли вариант 1, если нет то получается ли вариант 2, если снова нет, то имеет место вариант 3, здесь достаточно 2х обыкновенных ветвлений: Если вариант 1, то … иначе если вариант 2, то … иначе вариант 3. Такой способ отсечения вариантов громоздкий, поэтому имеется особая структура ветвления, которая называется множественным выбором, она годится в тех случаях когда варианты закодированы некоторой величиной порядкового типа, в организации такого ветвления участвуют ключевые слова Case, of, else, end. Между Case и of пишется выражение имеющее значение порядкового типа, ниже описываются ветви, их может быть несколько, причём каждая начинается условием принадлежности этой ветви, сразу за условием пишется : и далее оператор, обрабатывающий эту ветвь. Ветви отделяются ; . Предусмотрена особая ветвь которая пишется без условия после слова else, она должна быть последней (либо может отсутствовать) и в конце End; .
2) При организации ветвления используются отдельные значения, величины или диапозоны, и те и другие могут объединяться через запятую. Если величина совпадает с одним из перечисленных значений, то она относится к данному варианту и должна быть обработана соответствующим оператором, после обработки ветвление завершается.
3) Ветви проверяются сверху вниз, последней выполняется ветвь else, если ветвь else не представлена, то значения величины, которые не вошли ни в одну ветвь не обрабатываются.
Program _Case;
{$APPTYPE CONSOLE}
uses
SysUtils;
//==================================
// МНОЖЕСТВЕННЫЙ ВЫБОР
//(ветвление по значению)
//==================================
Label
Met,Met1,Met2;
Var
n,i:Integer;
b:Byte;
S:String;
Begin
//----------------------------------
// Выбор задачи
//----------------------------------
Repeat
Write(‘Number of task: ‘); ReadLn(i);
Until (i>0) And (i<3);
Case i Of
1:Goto Met1;
2:Goto Met2;
End;
//----------------------------------
//1. Склонение числительных
//----------------------------------
Met1:
Write('1. Number: '); ReadLn(n); //Ввод целого числа
S:=IntToStr(n)+' '; //Преобразование в строку
If (n Div 10) Mod 10=1 Then i:=0 //”...надцать” как 0,
Else i:=n Mod 10; //иначе как последняя цифра
Case i Of //В Ы Б О Р по значению i
0,5..9: S:=S+'негритят'; //если 0 или 5…9
1: S:=S+’негритёнок’ //если 1
Else
S:=S+’негритёнка’; //если 2..4
End;
Goto Met; //Вывести строку S
//----------------------------------
//2. Получение числа по b-ичной записи (без проверки)
//----------------------------------
Met2:
Write(‘3. Number: ‘); ReadLn(S); //Ввод записи числа
Write('Base: '); ReadLn(b); //Ввод основание системы
n:=0; S:=UpperCase(S); //Замена малых букв большими
For i:=1 To Length(S) Do //Цикл по цифрам
Case S[i] Of //В зависимости от цифры
‘0’..’9’:
n:=n*b+Ord(S[i])-Ord(‘0’) //-цифра обычная
Else
n:=n*b+Ord(S[i])-Ord(‘A’)+10; //-цифра не обычная
End;
S:='Значение '+IntToStr(b)+ //Готовим результат
'-ичного числа '+S+
‘ равно ‘+IntToStr(n);
Goto Met; //Вывести строку S
//----------------------------------
// Вывод текста по-русски
//----------------------------------
Met:
For i:=1 To Length(s) Do //Цикл по символам строки
Begin
b:=Ord(s[i]); //Получение кода символа
Case b Of
192..239: s[i]:=chr(b-64); //Код большой буквы
240..255: s[i]:=chr(b-16); //Код малой буквы
168: s[i]:=chr(240); //Малая ё
184: s[i]:=chr(241); //Большая Ё
End;
End;
WriteLn(S);
//----------------------------------
ReadLn;
End.