Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Интегрированная среда Turbo Pascal.

Поиск

Интегрированная среда Turbo Pascal.

Функциональные клавиши Турбо Паскаль.

F2 - сохранение редактируемого текста на диске;

F3 - загрузка текста с диска в окно редактирования;

F9 - компилировать программу, но не выполнять ее;

CTRL-F9 - выполнить прогон программы (компилировать ее и выполнить);

ALT-F5 - просмотр результатов выполнения программы;

Esc - переход из главного меню в окно редактирования.

ALT-X - выход из системы Турбо Паскаль.

Запустить программу на исполнение - Ctrl+F9.

Работа с блоками в Turbo Pascal

Блок это выделенная часть программы. Блоки можно переносить, копировать, удалять.

Ctrl+K,B – отметить начало блока;

Ctrl+K,K – отметить конец блока;

Ctrl+K,C – скопировать блок; в меню Edit выбрать команду Copy, затем команду Past.

Ctrl+K,V – переместить блок; в меню Edit выбрать команду Cut, затем команду Past.

Ctrl+K,Y – удалить блок; в меню Edit выбрать команду Clear.

Ctrl+K,H – снять выделение блока.

Выделить блок можно выделить еще следующим образом: прижать клавишу Shift и управляя стрелками продлить выделение на весь блок; либо с помощью мыши: прижать левую клавишу мыши протянуть выделение на весь блок. Повторное нажатие клавиши мыши приведет к снятию выделения.

Редактирование программы.

Перемещение курсора в начало строки – Home;

Перемещение курсора в конец строки – End;

Переключение между русским и латинским алфавитом - Ctrl+Shift (справа); Ctrl+Shift (слева);

Набор заглавной буквы – Shift+<клавиша с буквой>;

Удаление неправильного символа – установить курсор на этот символ и нажать клавишу Delete, либо установив курсор после неправильного символа и нажать BS;

Разрезать строчку на две – установить курсор на «место разреза» и нажать Enter;

Склеить две строки – установить курсор в конец первой из склеиваемых строк и нажать Delete или в начало второй и нажать BS;

Вставить между двумя строчками новую пустую – установить курсор в конец первой из двух строк или в начало второй и нажать Enter;

Удалить строчку целиком – установить на нее курсор и нажать комбинацию клавиш Ctrl+Y;

File состоит из следующих команд: New – создать новое рабочее окно. Open – открыть сохраненную ранее на диске программу. Save – сохранить программу под текущим именем. Save as – сохранение программы под новым именем. Save all – сохранение всех окон под текущими именами. Exit –выход из программы Структура программы program<имя программы>; uses <имена подключаемых библиотек>; type <описание типов данных>; const <описание констант>; label <описание меток>; var <описание переменных>; <описание подпрограмм>; begin <операторы>; end.

 

ПЕРЕМЕННЫЕ ВЕЛИЧИНЫ. ОПИСАНИЕ ПЕРЕМЕННЫХ.

Каждую переменную необходимо описать в VAR.

Например VAR W,R,Y:INTEGER;

F,G:REAL;

ДОПУСТИМЫЕ ИМЕНА НЕ ДОПУСТИМЫЕ
S, D1, Y2, DD, DD1 Ж, 2G
SUMMA, SUMMA_1 SUMMA 1
TRY_PLUS_DVA TRY&DVA

Типы переменных

Тип   Диапазон значений
Целый ShortInt -128...127
  Integer -32768...32767
  Longint -2147483648...2147483647
  Byte 0.... 255
  Word 0... 65535
Вещественный Real 2,9 10-39..... 1,7 1038 11..12 значащих цифр
  Single 7..8 значащих цифр
  Double 15..16 значащих цифр
  Extended 19..20 значащих цифр
  Comp 19..20 значащих цифр
Логический Boolean TRUE FALSE
Cимвольный Char 1 символ
Строковый String Массив символов, по умолчанию длина 256 символов.
Массивы array  
Записи record  
Множества set  
Файлы file  
Указатели pointer  

Операторы ввода READ, READLN

ЗАПИСЬ ДЕЙСТВИЕ
READLN(S) Ввести значение переменной S и enter
READ(S, F) Ввести значение переменной S пробел затем F enter
READLN(S, F) Ввести значение переменной S enter затем F enter

Операторы вывода WRITE, WRITELN

ЗАПИСЬ ВЫВОДИТ НА ЭКРАН
WRITE(3+2,’1+6’) 51+6
WRITE(‘кадет’,4+5,’ класса’) Кадет9 класса
WRITELN(R) Значение переменной R
WRITE(‘мото’) WRITE(‘цикл’) мотоцикл
WRITELN(‘мото’) WRITELN(‘цикл’) мото цикл

Операция присваивания

<имя переменной>:=<выражение>;

i:=0; значение переменной i становится равным нулю;

a:=b+c; значением переменной а будет число, равное сумме значений переменных b и c;

j:=j+1; значение переменной j увеличится на единицу.

Операции отношений:

< - меньше; > - больше; = - равно; <> - не равно; >= - больше или равно; <= - меньше или равно.

Линейный алгоритм

program exampl_1; var x,y,a,b,c: integer; d:real; begin writeln('Введите первое число’); readln(х); writeln('Введите второе число’); readln(у); a:=x+y; b:=x-y; c:=x*y; d:=x/y; writeln(‘Сумма = ‘,a); writeln(‘Разность = ‘,b); writeln(‘Произведение = ‘,c); writeln(‘Частное = ‘,d:5:2); readln; end.

 

Задачи

№1 Вводятся два числа. Вывести их сумму, разность, произведение, частное (результаты вычислять в переменные).

№2 Вводятся три числа. Найти их среднее арифметическое и среднее геометрическое.

№3 Вводится число. Найти остаток от деления числа на 2, квадрат числа, квадратный корень числа, модуль числа.

№4 Вводится текушее время. Вычислить сколько секунд прошло с 8 часов утра.

№5 ПК спрашивает - как тебя зовут? Отвечает - здравствуй «имя»

Алгоритм ветвление Синтаксис конструкции IF:

If условие then begin {серия команд, если условие истино}; end else begin {серия команд, если условие ложно}; end;

Примеры

С клавиатуры вводятся 2 числа. Вывести на экран большее из них. Var a, b: integer; begin writeln('Введите первое число’); readln(a); writeln('Введите второе число’); readln(b); if a<b then WriteLn('наибольшее',b) Else WriteLn('наибольшее',a); READLN; END. Рассчитать значение y при заданном значении x: Var x: integer; begin writeln('Введите число’); readln(x); if х>0 then y:=sqrt(x) else y:=x*x; WriteLn('Y= ',y); READLN; END.

Задачи ветвление IF:

1) Водятся два числа определить большее из них.

2) Составить программу для вычисления значения функции y(x):

3) Дано целое число. Определить:

а) является ли оно чётным или нечётным;

б) оканчивается ли оно цифрой 5;

в) оканчивается ли оно цифрой 7;

4) Дано двузначное число. Определить:

а) какая из его цифр больше: первая или вторая;

б) одинаковы ли его цифры?

в) кратна ли трём сумма его цифр;

г) кратна ли сумма его цифр числу A?

5) Дано трёхзначное число. Определить:

а) кратна ли пяти сумма его цифр;

б) кратна ли сумма его цифр числу A;

в) является ли сумма его цифр двузначным числом;

г) является ли произведение его цифр трёхзначным числом;

д) больше ли числа A произведение его цифр;

е) верно ли, что все его цифры одинаковые?

ж) определить, есть ли среди его цифр одинаковые?

6) Дано четырёхзначное число. Определить:

а) равна ли сумма двух первых его цифр сумме двух его последних цифр;

б) кратна ли трём сумма его цифр;

в) кратно ли четырём произведение его цифр;

г) кратно ли произведение его цифр числу A.

7) У дракона каждый год растет по 3 головы, до 100 лет, после 100 по 2 головы в год. Сколько голов и глаз у дракона которому N лет? N вводится с клавиатуры. Если N <=0 ответ 0.

8) Вводятся 3 целых числа. Определить большее из них

9) Вводятся 3 целых числа. Если существует треугольник с такими сторонами то вывести его периметр и площадь, иначе вывести фразу «треугольник не существует».

10) Даны три целых числа. Вывести на экран те из них, которые являются четными.

11) Даны три вещественных числа. Возвести в квадрат те из них, значения которых неотрицательны.

12) Даны три вещественных числа. Вывести на экран:те из них, которые принадлежат интервалу (1,6 – 3,8);

13) Даны четыре целых числа. Определить сумму тех из них, которые кратны трем.

Синтаксис коннструкции case:

case выражение of

список констант_1: begin

{последовательность инструкций 1};

end;

список констант_2: begin

{последовательность инструкций 2};

end;

список констант_n: begin

{последовательность инструкций n};

end

else begin

{последовательность инструкций, выполняемая в случае, если выражение не попало ни в один из списков констант};

end;

end;

Задачи

1) С клавиатуры вводится число от 2 до 5(школьная оценка). Вывести буквенное обозначение этой оценки.

2) С клавиатуры вводится число. Если число от 0 до 9 то вывести буквенное название цифры иначе «такой цифры нет».

Алгоритм цикл

Синтаксис оператора цикл for:

For i:=n1 to n2 do begin {последовательность операторов}; end; Либо: For i:=n2 downto n1 do begin {последовательность операторов}; end;

Где i – это счетчик цикла, который обязательно должен быть объявлен в разделе var, и иметь целочисленный тип;

n1 – начальное значение счетчика цикла;

n2 – конечное значение счетчика цикла.

Шаг изменения переменной – счетчика циклов может быть равен только 1(если используется ключевое слово to) или –1 (если используется ключевое слово downto).

Категорически не рекомендуется проводить какое–либо изменение переменной – счетчика цикла внутри тела цикла.

Задачи цикл FOR:

1) Вывести 30 раз слово НКШИ в строчку через запятую;

2) Напечатать "столбиком":

а) все целые числа от 20 до 35;

б) квадраты всех целых чисел от 10 до b (значение b вводится с клавиатуры; b≥10);

в) все двузначные числа в обратном порядке;

г) квадраты всех целых чисел от a до b (значение a и b вводятся с клавиатуры; b≤a).

3) Составить таблицу умножения

а) на 9.

б) на число n (значение n вводится с клавиатуры; 1≤n≤9).

4) Напечатать таблицу соответствия между весом в фунтах и весом в килограммах для значений 1, 2,., 10 фунтов (1 фунт = 453г).

5) Напечатать таблицу перевода 1,2,...,20 долларов США в рубли по текущему курсу (значение курса вводится с клавиатуры).

6) Одна штука некоторого товара стоит 20.4 руб. Напечатать таблицу стоимости 2,3,..,20 штук этого товара.

7) Рассчитать значения y для значений x, равных 4, 5,..., 12:

а) y = 2t*t + 5,5t – 2, у = 3,5t*t – 7t + 16,

б) t = x + 2. t = 4x.

8) Найти:

а) сумму всех целых чисел от 10 до 50;

б) сумму всех целых чисел от a до 50 (значение a вводится с клавиатуры; a≤50);

в) сумму всех целых чисел от -10 до b (значение b вводится с клавиатуры; b≥ -10);

г) сумму всех целых чисел от a до b (значения a и b вводятся с клавиатуры; b≥a).

9) Найти:

а) среднее арифметическое всех целых чисел от 1 до 100;

б) среднее арифметическое всех целых чисел от 100 до b (значение b вводится с клавиатуры; b≥100);

в) среднее арифметическое всех целых чисел от a до 200 (значение a вводится с клавиатуры; a≤200);

10) Найти:

а) сумму квадратов всех целых чисел от a до 50 (значение a вводится с клавиатуры; 0≤a≤50);

б) сумму квадратов всех целых чисел от 1 до n (значение n вводится с клавиатуры; 1≤n≤100);

в) сумму квадратов всех целых чисел от a до b (значение a и b вводится с клавиатуры; b≥a).

11) Дано натуральное число n. Найти сумму n2 + (n+1)2 +... + (2n)2.

Одномерные массивы.

Массив – это упорядоченный набор однотипных элементов, имеющих общее имя.

Объявление массива.

Перед использованием массив, как и любая переменная, должен быть объявлен в разделе объявления переменных. В общем виде объявление массива выглядит так:

имя: array [нижний_индекс..верхний_индекс] of тип; где

имя – имя переменной – массива.

array – ключевое слово, обозначающее, что переменная является массивом;

нижний_индекс и верхний_индекс – целые числа, определяющие диапазон изменения индексов (номеров) элементов массива и, неявно, количество элементов (размер) массива;

тип – тип элементов массива.

Примеры объявления массивов: Примеры заполнения массивов
t: array[1..31] of real; k: array[0..2] of integer; n: array[1..30] of longint; Чтобы в программе использовать элемент массива, надо указать имя массива и номер элемента (индекс), заключив его в квадратные скобки. индекс может быть константой или выражением целого типа. Например: t[1]:=1.22; d:=k[1]*k[1]-4*k[2]*k[1]; readln (n[i+1]); writeln (t[m]); Оператор присваивания. А[1]:=3; или B[1]:=’Иванов’; B[2]:=’Петров’; Такой способ задания значений используется, если массив небольшой. Вывод массива. For i:=1 to 10 do writeln(a[i]); Вывод пятого элемента массива записывается так: write(a[5]); 1) Оператором ввода с клавиатуры. For i:=1 to 10 do begin Writeln(‘введите ’,i,’-ый элемент массива’); Readln(a[i]); end; {в качестве индекса используется параметр цикла } Этот способ задания значений используется для небольших массивов. 2) Заполнение массива с использованием генератора случайных чисел. RANDOMIZE; For i:=1 to 10 do a[i]:=Random(x); {массив заполнится целыми числами в диапазоне от 0 до Х} 3) Заполнение по формуле. Каждый элемент массива должен быть рассчитан по формуле (например ai=sin i - cos i) for i:=1 to 10 do a[i]:=sin(i)-cos(i);

Поиск в массиве.

Например: определить сколько раз в массиве встречается число t.

k:=0;

writeln (‘Введите искомое число’); readln (t);

for i:=1 to n do if a[i]=a then inc(k);

writeln (‘Количество элементов равных ’,t,’ в массиве =’,k);

Задачи на одномерные массивы:

1) Заполнить массив:

а) десятью первыми членами арифметической прогрессии с известным первым членом прогрессии a и ее разностью p;

б) двадцатью первыми членами геом-кой прогрессии с известным первым членом прогрессии a и ее знаменателем z.

2) Дан массив. Все его элементы:

а) уменьшить на 20;

б) умножить на последний элемент;

в) увеличить на число b.

3) Определить:

а) сумму всех элементов массива;

б) произведение всех элементов массива;

в) сумму квадратов всех элементов массива;

г) сумму шести первых элементов массива;

д) сумму элементов массива с k1-го по k2-й (значения k1 и k2 вводятся с клавиатуры; k2>k1);

е) среднее арифметическое всех элементов массива;

ж) среднее арифметическое элементов массива с s1-го по s2-й (значения s1 и s2 вводятся с клавиатуры; s2>s1).

4) Дан массив из 30 целых чисел массив. Напечатать:

а) все неотрицательные элементы;

б) все элементы, не превышающие числа 100.

в) все четные элементы;

г) все элементы, оканчивающиеся нулем.

5) Дан массив натуральных чисел. Напечатать:

а) все элементы массива, являющиеся двузначными числами;

б) все элементы массива, являющиеся трехзначными числами.

в) второй, четвертый и т.д. элементы;

г) третий, шестой и т.д. элементы.

6) Дан массив целых чисел. Выяснить:

а) верно ли, что сумма элементов массива есть четное число;

б) верно ли, что сумма квадратов элементов массива есть пятизначное число.

Дан массив целых чисел.

а) Все элементы, оканчивающиеся цифрой 4, уменьшить вдвое.

б) Все четные элементы заменить на их квадраты, а нечетные удвоить.

в) Четные элементы увеличить на a, а из элементов с четными номерами вычесть b.

г) Все элементы, кратные числу 10, заменить нулем.

д) Все нечетные элементы удвоить, а четные уменьшить вдвое.

е) Нечетные элементы уменьшить на m, а элементы с нечетными номерами увеличить на n.

13) Дан массив. Определить:

а) а) максимальный элемент;

б) б) минимальный элемент;

в) в) на сколько максимальный элемент больше минимального;

г) г) индекс максимального элемента;

д) д) индекс минимального и индекс максимального элементов.

14) Дан массив. Определить:

а) количество максимальных элементов в массиве;

б) количество минимальных элементов в массиве.

в) изменить знак у максимального по модулю элемента массива. Минимальный элемент массива при этом не определять.

Дан массив.

а) Найти количество элементов, значение которых больше среднего арифметического минимального и максимального элементов массива, и напечатать их номера.

б) Найти элемент, наиболее близкий к среднему значению всех элементов массива.

16) Дан массив. Скопировать все его элементы в другой массив такого же размера:

а) в том же порядке расположения элементов;

б) в обратном порядке расположения элементов.

17) Даны два массива одного размера. Получить третий массив, каждый элемент которого равен:

а) сумме элементов с одинаковыми номерами в заданных массивах;

б) произведению элементов с одинаковыми номерами в заданных массивах;

в) максимальному из элементов с одинаковыми номерами в заданных массивах.

18) Даны два массива одного размера, в которых нет нулевых элементов. Получить третий массив, каждый элемент которого равен 1, если элементы заданных массивов с тем же номером имеют одинаковый знак, и равен нулю в противном случае.

Дан массив целых чисел.

а) Напечатать все элементы, предшествующие первому элементу с заданным значением n. Если элементов, равных n, в массиве нет, то должны быть напечатаны все элементы.

б) Напечатать все элементы, следующие за последним элементом, оканчивающимся цифрой "7". Если элементов, оканчивающихся цифрой "7", в массиве нет, то ни один элемент не должен быть напечатан.

20) Дан массив целых чисел. Найти:

а) номер первого нечетного элемента. Если нечетных элементов в массиве нет, то должно быть напечатано соответствующее сообщение;

б) номер первого элемента, кратного числу 13. Если таких элементов в массиве нет, то должно быть напечатано соответствующее сообщение;

21) Дан массив вещественных чисел. Определить, есть ли в нем отрицательные числа. В случае положительного ответа:

а) определить номер первого из них и напечатать все следующие за ним элементы;

б) определить номер последнего из них напечатать все элементы, расположенные слева от него.

22) Найти количество различных элементов в массиве.

23) Определить количество различных цифр в целом числе.

Двумерные массивы.

Описание двумерного массива определяет имя, размер массива (количество строк и столбцов) и базовый тип.

Двумерный массив — массив, у которого положение каждого элемента характеризуется двумя числами, первое из них определяет номер строки, второе – номер столбца, на пересечении которых находится элемент. Он так же, как и одномерный массив, состоит из значений одного типа. В двумерных массивах хранятся значения прямоугольных таблиц. Примеры описания двумерных массивов:

Var С: array [1..5, 1..10] of integer;

R1, R2: array [0..10, 1..365] of char;

Sim: array [1..20, 1..10] of string[20];

X, S: array [1..M, 1..N] of byte;

Работа с элементами

В математике часто используют многомерные массивы (двумерные, трехмерные и т.д.). Мы рассмотрим двумерные массивы, иначе называемые матрицами.

Например: 5 4 3 6 2 8 1 7 4 3 9 5 Данная матрица имеет размер 3 на 4, т.е. она состоит из трех строк и четырех столбцов. Если всю матрицу обозначить одним именем, например А, то каждый элемент матрицы будет иметь два индекса - А[i,j]

Здесь первый индекс i обозначает номер строки (i=1,2,3), второй индекс j - номер столбца (j=1,2,3,4).

Такую матрицу можно описать следующим образом:

Var A: array [1..3,1..4] of integer;

При решении задач с использованием двумерных массивов во всех случаях (кроме некоторых частных) организуются вложенный цикл.

Перемещение по строке:

for i:=1 to m do {внешний цикл, изменяется номер строки}

for j:=1 to n do {внутренний цикл, изменяется номер столбца}

Перемещение по столбцу:

for j:=1 to n do {внешний цикл, изменяется номер столбца}

for i:=1 to m do {внутренний цикл, изменяется номер строки}

Квадратные матрицы.

Type mas4x4=array[1..4,1..4] of integer;

var a: mas4x4;

a11 a12 a13 a14
a21 a22 a23 a24
a31 a32 a33 a34
a41 a42 a43 a44

 

a12 a13 a14
    a23 a24
      a34
       

 

     
a21      
a31 a32    
a41 a42 a43  

 

Главная диагональ - элементы a11, a22, a33, a44 (индексы элементов, расположенных на главной диагонали (i=j)

Побочная диагональ - элементы a41, a32, a23, a14 (сумма индексов элементов на 1 больше размерности строки (или столбца), т.е. i+j=4+1 или i+j=n+1. На рисунке главная диагональ закрашена сплошным серым цветом, побочная - черным.

Элементы, расположенные над главной диагональю, Для индексов элементов, расположенных над главной диагональю выполняется отношение i<j;

Элементы, расположенные под главной диагональю, Для индексов элементов, расположенных под главной диагональю выполняется отношение i>j;

Примеры:

1) Найти сумму элементов главной диагонали:

S:=0;

for i:=1 to n do S:=S+a[i,i];

2) Найти минимальный элемент побочной диагонали:

min:=a[1,n];

for i:=1 to n do

if a[i,n+1-i]<min then min:=a[i,n+1-i];

Строки.

Последовательность символов называют строкой.

Переменная типа string должна быть объявлена в разделе описания переменных так:

Имя: string; или Имя: string[длина];

где Имя – имя переменной; string – ключевое слово обозначения строкового типа; длина – константа типа integer, определяющая максимальную длину последовательности символов, которая может быть присвоена переменной.

Примеры: name: string [30];

s: string;

Если при объявлении переменной длина не указывается, то предполагается что длина строки равняется 255 символам, т.е. объявления s: string; и s:string[255]; эквивалентны.

В тексте программы последовательность символов, являющаяся строкой, заключается в одинартные кавычки. Например, чтобы присвоить строковой переменной parol значение, нужно записать:

parol:=’большой секрет’; или parol:=’2010’;

Утверждение parol:=2010; приведет к ошибке при компиляции, так как тип переменной не соответствует типу константы.

Переменную типа string можно сравнивать с другой переменной или константой типа string, используя операторы =, <, >, <=, >=, <>. Строки сравниваются посимвольно от первого символа. Если все символы сравниваемых строк одинаковые, то такие строки считаются равными. Если в одинаковых позициях строк находятся разные символы, большей считается та строка, у которой в этой позиции находится символ с большим кодом. Например: Иванов – 1 строка, Иванов – 2 строка, тогда они равны; васильев – 1 строка, Васильев – 2 строка, тогда 1 строка больше 2; Алексеев – 1 строка, петров – 2 строка, тогда 1 строка меньше 2; Иванова – 1 строка, Иванов – 2 строка, тогда 1 строка больше 2.

Кроме операций сравнения к строковым переменным и константам можно применить оператор сложения, в результате выполнения которого получается новая строка, полученная склеиванием двух или более строк. Например: name:=’Иван’;

fam:=’Иванов’;

fn:= fam +’ ‘+name;

переменная fn получит значение ’Иванов Иван’.

Задачи:

1) Составить программу:

а) которая запрашивает имя человека и повторяет его на экране с приветствием;

б) которая запрашивает название футбольной команды и повторяет его на экране со словами: "Это чемпион!".

2) Составить программу, которая запрашивает отдельно имя и отдельно фамилию, а затем выводит их как одну символьную строку.

Строковые функции

Функция length.

Функция length возвращает длину строки. У функции один параметр – переменная строкового типа. Возвращаемое значение функции (целое число) – количество символов, из которых состоит строка, без учета начальных и завершающих пробелов. Например length(’Иванов’) равно 6, а значение length(’ Невский проспект ’) равно 16, так как при вычислении длины строки функция не учитывает начальные и завершающие пробелы.

Примеры определения длины строки

• k:=length(‘мир’); k=3

• s:=‘Кот и пес’; n:= length(s); n=9

• s1=‘’; i:= length(s1); i=0 ‘’ - пустая строка!

Задачи:

3) Дано название футбольного клуба. Определить количество символов в нем.

4) Дано название города. Определить четно или нет количество символов в нем.

5) Даны две фамилии. Определить какая из них длиннее.

Функция copy.

Функция copy позволяет выделить фрагмент строки. В общем виде обращение к функции copy выглядит так: (строка, p, n);

где строка – переменная строкового типа, содержащая строку, фрагмент которой надо получить; p – номер первого символа в строке строка, с которого начинается выделяемая подстрока; n – длина выделяемой подстроки. Например, в результате выполнения команд:

s:= ‘Инженер Иванов’;

fam:= copy (s, 9, 6);

значением переменной fam будет строка ‘Иванов’.

Примеры выделения символов

• s:=‘информатика’;

s1:=copy (s, 3, 5); s1=‘форма’

s2:=copy (s, 8, 2)+ copy (s, 3, 1); s2=‘тиф’

Задачи:

6) Дано слово. Получить его часть, образованную второй, третьей и четвертыми буквами.

7) Дано слово, состоящее из четного числа букв. Вывести на экран его первую половину, не используя оператор цикла.

8) Дано слово. Получить его часть, образованную идущими подряд буквами, начиная с m-й и кончая n-й.

9) Из слова "яблоко" путем вырезок его букв получить слова "блок" и "око".

Процедура insert.

Процедура insert позволяет добавить часть строки в исходную строку. В общем виде обращение к процедуре выглядит так: Insert (подстрока, строка, p);

где подстрока – строковая константа или переменная, которую необходимо добавить в строковую переменную строка; p – номер первого символа в строке строка, с которого начинается добавление подстроки.

Примеры вставки символов

• s:=‘мама’;

insert (‘очк’, s, 4); s=‘мамочка’

• s1:=‘рог’;

s2:=‘по’;

insert (s1, s2, 3); s2=‘порог’

Задачи:

10) Дано слово. Вставить букву "т" после k-й буквы.

11) Дано слово. Вставить заданную букву после первой буквы "и".

12) Дано слово. Переставить его первую букву на место последней. При этом вторую, третью,..., последнюю буквы сдвинуть влево на одну позицию.

Процедура delete.

Процедура delete позволяет удалить часть строки. В общем виде обращение к процедуре выглядит так: delete (Строка, p, n);

где строка – переменная строкового типа; p – номер символа, с которого начинается удаляемая подстрока; n – длина удаляемой подстроки.

Например, в результате выполнения команд:

s:= ‘Город Санкт-Петербург’;

delete (s, 7, 6);

значение переменной s будет строка ‘Город Петербург’.

Примеры удаления символов

• s:=‘котик’;

delete (s, 4, 2); s=‘кот’

• s:=‘информатика’;

delete (s, 1, 2);

delete (s, 6, 4); s=‘форма’

Задачи:

13) Дано слово:

а) удалить из него третью букву;

б) удалить из него k-ю букву.

в) удалить из него первую из букв "о", если такая буква есть.

г) удалить из него последнюю из букв "т", если такая буква есть.

14) Дано слово. Если его длина нечетная, то удалить среднюю букву, в противном случае - две средних буквы.

15) Дано предложение. Удалить из него все символы с n1-го по n2-й (n1£n2).

16) Дано предложение. Удалить из него все буквы "с".

17) Дано слово. Удалить из него все повторяющиеся буквы, оставив их первые вхождения, то есть в слове должны остаться только различные буквы.

18) Дано предложение. Удалить из него все буквы "о", стоящие на нечетных местах.

Функция pos.

Функция pos позволяет определить положение подстроки в строке. В общем виде обращение к функции выглядит так: pos (Подстрока, строка);

где Подстрока – строковая константа или переменная, которую надо найти в строковой константе или переменной строка.

Например, в результате выполнения команды: p:= pos (‘Пе’, ‘Санкт-Петербург’); значение переменной p будет равно 7. Если в строке нет искомой подстроки, то функция возвращает ноль.

Примеры определения позиции

• k:=pos(‘р’, ’мир’); k=3

• s:=‘колокол’;

n:=pos(‘кол’, s); n=1

• s1:=‘ок’; s2:=‘кок’;

i:=pos(s1, s2); i=2

• k:=pos(‘п’, ’мама’); k=0

Задачи:

19) Дано предложение, в котором имеется несколько букв "е". Найти:

20) а) порядковый номер первой из них;

21) б) порядковый номер последней из них.

22) Дано предложение. Определить, есть ли в нем буква "а". В случае положительного ответа найти также порядковый номер первой из них.

23) Дано предложение. Определить количество букв "н", предшествующих первой запятой предложения.

24) Дано предложение. Напечатать все символы, расположенные между первой и второй запятой. Если второй запятой нет, то должны быть напечатаны все символы, расположенные после единственной имеющейся запятой.

25) Дано предложение, в котором имеются одна буква "с" и одна буква "т". Определить, какая из них встречается раньше (при просмотре слова слева направо).

Процедура val.

процедура val позволяет преобразовать изображение числа в число. В общем виде обращение к процедуре выглядит так: val (Строка, число, код).

где строка – строковая константа или переменная, содержащая изображение числа; число - переменная, которой должно быть присвоено значение, изображенное строкой строка; код – возвращаемый процедурой код ошибки. Если строка может быть преобразована в число, то код ошибки равен нулю.

var

month: integer;

st: string[10];

code: integer;

begin

repeat

write (‘Месяц->’);

readln (st);

val (st, month, code);

if code<>0 then

writeln (‘Ошибка! Месяц следует задать цифрой.’);

until code=0;

end.

Задачи:

26) Дан текст. Напечатать все имеющиеся в нем цифры.

27) Дан текст. Определить количество цифр в нем.

28) Дан текст, в котором имеются цифры.

29) а) Найти их сумму.

30) б) Найти максимальную цифру.

31) Дан текст, в начале которого имеются пробелы и в котором имеются цифры. Найти порядковый номер максимальной цифры, считая, что первый номер имеет первый непробел. Если максимальных цифр несколько, то должен быть найден номер первой из них.

Процедура str.

Процедура str позволяет преобразовать число в его изображение, т.е. в строку. В общем виде обращение к процедуре выглядит так: str (выражение, строка).

где выражение – выражение или переменная целого или вещественного типа, строка – строковая переменная, которой будет присвоено изображение выражения.

Процедура ord

Процедура ord возвращает десятичный код символа.

ord(C[1]) где C[1] стока длины1 или переменная типа char.

Задачи общие:

32) Дано предложение. Определить число букв "о" в нем.

33) Дано предложение. Определить число пробелов в нем.

34) Дано предложение. Определить число вхождений в него некоторого символа.

35) Дано предложение. Определить долю (в %) букв "а" в нем.

36) Дан текст. Сколько раз в нем встречается символ "+" и сколько раз символ "*".

37) Дано предложение. Определить сколько в нем одинаковых соседних букв.

38) Дано предложение. Определить число вхождений в него буквосочетания "ро".

39) Дано предложение. В нем слова разделены одним пробелом (начальные и конечные пробелы в предложении отсутствуют). Определить количество слов в предложении.

40) Дано предложение. В нем слова разделены одним или несколькими пробелами. Определить количество слов в предложении.

41) Дан текст. Подсчитать общее число вхождений в него символов "+" и "-".

42) Дано предложение. Определить, сколько в нем гласных букв.

43) Дано предложение. Все буквы "е" в нем заменить на букву "и".

44) Дано предложение. Все его символы, стоящие на четных местах заменить на букву "ы".

45) Дано предложение. Заменить в нем все вхождения буквосочетания "ах" на "ух".

46) Дано предложение. Заменить в нем все вхождения буквосочетания "бит" на "рог".

47) Дана последовательность слов. Проверить, правильно ли в ней записаны сочетания "жи" и "ши".

48) Дана последовательность слов. Проверить, правильно ли в ней записаны сочетания "ча" и "ща". Исправить ошибки.

49) Дано слово. Определить, сколько различных букв в нем.

50) Даны два слова. Определить, можно ли из букв первого из них получить второе. Рассмотреть два варианта:

а) повторяющиеся буквы второго слова могут в первом слове не повторяться;

б) каждая буква второго слова должна входить в первое слово столько же раз, сколько и во второе.

51) Даны три слова. Напечатать только те буквы слов, которые есть только в одном из слов. Рассмотреть два варианта:

а) повторяющиеся буквы каждого слова рассматриваются;

б) повторяющиеся буквы каждого слова не рассматриваются.

52) Даны три слова. Напечатать их общие буквы. Повторяющиеся буквы каждого слова не рассматривать.

53) Даны три слова. Напечатать неповторяющиеся в них буквы.

Символы.

Для хранения и обработки отдельных символов используются переменные типа char. Значением переменной типа char может быть любой символ. Переменная символьного типа должна быть объявлена в разделе описания переменных так:

Примеры: otv: char;

В результате выполнения программы:

var

c1, c2, otvet: char;

begin

c1:=’*‘;

c2:=c1;

write (‘Вы хотите научиться программировать?’);

readln (otvet);

writeln (c1, ‘Ваш ответ: ’, otvet, c2);

readln;

end.

переменная с1 получает значение присваиванием значения константы, с2 – присваиванием значения переменной с1, а значение переменной otvet вводится с клавиатуры.

Обратите внимание: переменная otvet объявлена как char, т.е. один символ. Поэтому если в ответ на вопрос программы будет введено, например слово «Да», то переменная otvet получит значение «Д».

Интегрированная среда Turbo Pascal.



Поделиться:


Последнее изменение этой страницы: 2016-12-30; просмотров: 589; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.135.194.138 (0.012 с.)