- •Билет №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:
I:Integer;
Begin
SetLength(d,10); //Выделение памяти дин. массиву
{--------------------}
d[1]:=100; s['A']:=True; //Присваивание значения элементу
a[7]:=Random(100); //Случайное значение
{--------------------}
WriteLn(SizeOf(a)); //Размер статического массива
WriteLn(SizeOf(d[0])*Length(d));//Размера динамического массива
{--------------------}
FillChar(a,SizeOf(a),0); //Заполнение массива нулями
FillChar(d[0],SizeOf(d[0])*Length(d),0);
{--------------------}
WriteLn(Low(d),'-',High(d)); //Получение диапазона индексов
WriteLn(Length(d)); //и длины массива
{--------------------}
For i:=Low(a) To High(a) Do //Заполнение массива
a[i]:=10+Random(90); //случайными двузначными числами
// ЗАМЕЧАНИЕ // Элемент массива не может служить счётчиком цикла FOR: // For a[1]:=1 To 10 Do; - ОШИБКА !
|
ReadLn;
End.
{---------------------}
{ ОПИСАНИЕ МАССИВОВ }
{---------------------}
Var
a:Array[0..9] Of Integer; {Числовой массив}
IMax,iMin:Integer; {Наибольший и наименьший}
c:Array[1..11] Of Char= {Символьный массив}
'ABRACADABRA';
s:Char;
I:Integer;
Begin
//-------------------------------------------------
//ЗАДАЧА 1.
//Заполнить массив случайными двухзначными числами.
//Найти
//а) индексы наибольшего и наименьшего элементов
//б) диапазон значений элементов
//-------------------------------------------------
Randomize;
For i:=Low(a) To High(a) Do //Заполнение числового массива
Begin
a[i]:=10+Random(90); //случайными двузначными числами
Write(a[i],' '); //Вывод элементов в строчку
End;
WriteLn;
IMax:=Low(a); IMin:=Low(a); //Начальные значения индексов
For i:=Low(a)+1 To High(a) Do
Begin
If a[i]<a[IMin] Then IMin:=i; //Обновление наименьшего
If a[i]>a[IMax] Then IMax:=i; //Обновление наибольшего
End;
WriteLn('Min: a[',IMin,'] = ',a[IMin],' Max: a[',IMax,
'] = ',a[IMax]);
//-------------------------------------------------
//ЗАДАЧА 2.
//В заданном символьном массиве найти первую позицию
//указанной буквы
//-------------------------------------------------
For i:=Low(c) To High(c) Do //Вывод символьного массива
Write(c[i]);
WriteLn;
Write('Symbol: '); ReadLn(s);
For i:=Low(c) To High(c) Do //Перебор элементов массива
If c[i]=s Then Break;
If i<=High(c) Then WriteLn('Result: ',i)
Else WriteLn('No Result');
ReadLn;
End.
Билет №11, 12:
Строковый тип данных является сложным. Строки рассматриваются как одномерный символьный массив, со строкой можно выполнить те же действия что и с динамическим массивом, однако строки выделены в особый тип и для них разработана масса операторов, основная задача этих операторов выполнять преобразование и анализ строк.
//Строки
Var
S,T,F:String; //Описание строк
i,c:Integer;
Ch:Char;
Begin
//Образование строк
T:=''; //Пустая строка
S:='asd'; //Присваивание произвольного текста
S:=StringOfChar('@', 20); //Строка с повторяющимся символом
S:=S+T; //Соединение строк (конкатенация)
//Числовые функции строковых аргументов
i:=Length('qwerty'); //Длина i строки 'qwerty'
i:=StrToInt('123'); //Преобразование строки '123' в целое число i
i:=Pos('mid','piramida'); //Поиск подстроки 'mid' в строке 'piramida'
//i - позиция вхождения (иначе i = 0)
//Строковые функции строковых аргументов
S:=AnsiUpperCase('Abc'); //Преобразование малых букв 'Abc' в большие
S:=AnsiLowerCase('Abc'); //Преобразование больших букв 'Abc' в малые
S:=Trim(' qwerty '); //Удаление нач. и кон. пробелов около 'qwerty'
S:=TrimLeft(' qwerty'); //Удаление только нач. пробелов ' qwerty'
S:=TrimRight('qwerty '); //Удаление только кон. пробелов 'qwerty '
S:=Copy('qwerty', 2, 3); //Выделение из 'qwerty' подстроки 'wer'
//Строковые функции числовых аргументов
S:=IntToStr(123); //Преобразование целого числа 123 в строку '123'
S:=FloatToStr(123.34); //Преобразование вещественного числа в строку
//Строковые процедуры
Delete(S,2,3); //Удаление из S со второго символа трёх штук
Insert('qwerty',S,4); //Вставка 'qwerty' в S от четвёртого символа
Val('123',i,c); //Преобразование строки '123' в число i,
//c - позиция неправильного символа (иначе c = 0)
//Пример 1. Замена всех малых латинских букв пробелами
//----------------------------------------------------
S:='123asd123';
For i:=1 To Length(S) Do
If ('a'<=S[i]) And (S[i]<='z') Then S[i]:=' ';
WriteLn('Result ',S);
//Пример 2. Переворот строки
//----------------------------------------------------
Write('String : '); ReadLn(S);
T:='';
For i:=1 To Length(S) Do
T:=S[i] + T;
WriteLn('Result ',T);
//Пример 3. Замена указанного символа на заданный текст
//----------------------------------------------------
Write('String: '); ReadLn(S);
Write('Symbol: '); ReadLn(Ch);
Write('Text : '); ReadLn(F);
T:='';
For i:=1 To Length(S) Do
If S[i]=Ch Then T:=T+F Else T:=T+S[i];
WriteLn('Result ',T);
//Пример 4. Разбиение строки на слова
//----------------------------------------------------
Write('String: '); ReadLn(S);
c:=0;
For i:=1 To Length(S) Do
If S[i]=' ' Then
Begin
If i>c+1 Then
WriteLn(Copy(S,c+1,i-c-1));
c:=i;
End;
If i>c+1 Then WriteLn(Copy(S,c+1,i-c-1));
//Пример 5. Сортировка массива строк
//----------------------------------------------------
SetLength(M,5);
M[0]:='Cat'; M[1]:='Dog';
M[2]:='Horse'; M[3]:='Bird';
M[4]:='Mouse';
WriteLn('Strings: ');
For i:=0 To High(M) Do Write(M[i],' ');
WriteLn;
For i:=Low(M)+1 To High(M) Do
Begin
S:=M[i]; c:=i;
While (c>0) And (M[c-1]>S) Do
Begin
M[c]:=M[c-1];
c:=c-1;
End;
M[c]:=S;
End;
WriteLn('Result: ');
For i:=0 To High(M) Do Write(M[i],' ');
WriteLn;//----------------------------------------------------
ReadLn;
End.