Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка основы программирования.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
3 Мб
Скачать
☆

Перечислимый тип

Тип, задаваемый перечислением значений, называется перечислимым. Пример 1. type Days = (Mon, Tue, Wen, Thi, Fri, Sat, Sun); Months = (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec); var d: Days; m: Months; begin d := Tue; m := Months.May; writeln(d,m); end. Переменные перечислимого типа хранятся в памяти, как целые числа. Первому значению соответствует 0, второму — 1, и т.д. Пример 2. for m: Months:=Jan to Dec do case m of Jan: writeln('Январь'); Feb: writeln('Февраль'); else writeln('Забыли'); end; Пример 3. type Days = (Mon, Tue, Wen, Thi, Fri, Sat, Sun); var d: Days; begin d := Tue; {возвращает следующее значение перечислимого типа} writeln(Succ(d)); {Wen} {возвращает предыдущее значение перечислимого типа} writeln(Pred(d)); {Mon} {возвращает порядковый номер текущего значения перечислимого типа} writeln(Ord(d)); {1} end.

Диапазонный тип

Диапазонный тип строится на базе

  • целого

  • символьного

  • или перечислимого типов

type Marks = 2..5; Digits = '0'..'9'; Letters = 'a'..'z'; Summer = Jun..Aug;

Пример 5. Применение диапазонного типа для массива var a:array [1..10, 'a'..'z'] of integer; i,j:integer; begin a[1,'b']:=Random(100); writeln(a[1,'b']); end. var i:'a'..'z'; j:integer; begin var a:array [1..4, 'a'..'d'] of integer; for j:=1 to 4 do for i:='a' to 'd' do begin a[j,i]:=random(10); write(i,' = ',a[j,i]:2,' '); end end. Пример 6.Словесное наименование сезона по номеру месяца

var Month: integer;

Season: string;

begin

write('Введите номер месяца: ');

readln(Month);

case Month of

1,2,12: Season := 'Зима';

3..5: Season := 'Весна';

6..8: Season := 'Лето';

9..11: Season := 'Осень';

else Season := 'Вы ввели неверный номер месяца';

end;

writeln('Это ',Season)

end.

  • Краткая теория "Символы и строки"

Символы

c : char Пример var c: char; a:byte; begin readln(c); writeln(ord(c)); {возвращает код символа} a:=120; writeln(chr(a)); {возвращает символ по коду} writeln(UpperCase(c)); {преобразует символ в заглавную букву} writeln(LowerCase(c)); {преобразует символ в прописную букву} if (char.IsDigit(c)) then writeln('цифра'); {проверка, что символ - это цифра} if (char.IsLetter(c)) then writeln('буква'); {проверка, что символ - это буква} if (char.IsLetterOrDigit(c)) then writeln('буква или цифра'); {проверка, что символ - это буква или цифра} end.

Строки

st : string Строка - это одномерный массив типа char. Пример var c: char; st:string; begin readln(st); {ввод строки} c:=st[3]; {переменной c присваивается третья буквы строки st} writeln(c); end. Пример var st, st1, st2:string; begin readln(st); readln(st1); st2:=st+' '+st1; {конкатенация строк} writeln(st2); {сравнение строк} if st>st1 then writeln('st>st1') else writeln('st<st1'); end. Подпрограммы работы со строками

Length(s) - функция, возвращающая длину строки s

SetLength(s,n) - процедура, устанавливающая длину строки s равной n

Copy(s,from,len) - функция, возвращающая подстроку s с позиции from длины len

Insert(subs,s,form) - процедура, вставляющая подстроку subs в строку s с позиции from

Delete(s,from,len) - процедура, удаляющая из строки s len символов с позиции from

Pos(subs,s) - функция, возвращающая позицию первого вхождения подстроки subs в строку s или 0, если подстрока не найдена

PoGender(subs,s,from=1) - функция, возвращающая позицию первого вхождения подстроки subs в строку s, начиная с позиции from, или 0, если подстрока не найдена

TrimLeft(s) - функция, возвращающая строку s, в которой удалены все начальные пробелы

TrimRight(s) - функция, возвращающая строку s, в которой удалены все заключительные пробелы

Trim(s) - функция, возвращающая строку s, в которой удалены все удаляет все начальные и заключительные пробелы