- •Введение Литература
- •Сокращения
- •Тема № 1. Основные понятия программирования
- •1.1. Состав программы на языкеPascal
- •1.2. Элементы программы в языкеPascal
- •1.3. Типы данных в языкеPascal
- •1.4. Операции в языкеPascal
- •1.5. Выражения в языкеPascal
- •1.6. Стандартные функции в языкеPascal
- •1.7. Операторы языка Pascal
- •Тема № 2. Программирование базовых алгоритмов
- •2.1. Программирование последовательных вычислений
- •2.2. Программирование разветвлений
- •2.3. Программирование циклов
- •Тема № 3. Программирование задач с массивами
- •3.1. Одномерные массивы
- •Фрагменты вычисления характеристик одномерного массива
- •Фрагменты операций с одномерными массивами
- •Особенности элементов одномерного массива
- •3.2. Двумерные массивы
- •Фрагменты вычисления характеристик двумерного массива
- •Фрагменты вычисления характеристик строк и столбцов двумерного массива
- •Фрагменты операций с двумерными массивами
- •Особенности элементов квадратных матриц
- •3.3. Перестановка и сортировка элементов массива
- •Тема № 4. Программирование подпрограмм и структурных типов данных
- •4.1. Подпрограммы
- •4.2. Программирование задач с функциями
- •4.3. Программирование задач с процедурами
- •4.4. Программирование задач с файлами
- •4.5. Программирование задач с символами и строками
- •4.6. Программирование задач с записями
- •4.7. Программирование задач со множествами
- •Тема № 5. Моделирование
- •5.1. Моделирование как метод познания
- •5.2. Классификация моделей
- •5.3. Задачи и методы моделирования
- •5.4. Виды численных методов
- •Тема № 6. Введение в компьютерную графику
- •6.1. Предмет компьютерной графики
- •6.2. Виды компьютерной графики
- •6.3. Направления компьютерной графики
- •Тема № 7. Модели компьютерной графики
- •7.1. Геометрические модели
- •7.2. Цветовые и оптические модели
- •Тема № 8. Аффинные преобразования
- •8.1. Общий вид двумерных преобразований
- •8.2. Элементарные двумерные преобразования
- •8.3. Однородные координаты на плоскости
- •8.4. Композиции двумерных преобразований
- •8.5. Преобразования систем координат
- •8.6. Двумерные преобразования на экране монитора
- •8.7. Матричное представление трёхмерных преобразований
4.5. Программирование задач с символами и строками
Строка– упорядоченный набор символов в кавычках.
Описание строкив разделе описания переменных (Var) на языке Pascalимеет вид:
St:string[NMax] ;
где string– строка,St– имя строки, NMax– максимальное количество символов в строке.
Это означает, что переменная Stявляется строкой, которая может содержать от 0 до NMaxсимволов.
Описание символьной переменнойв разделе описания переменных (Var) на языке Pascalимеет вид:
Ch:char;
где char– символьный тип(character),Ch– имя символа.
Это означает, что переменная Chявляется символом.
Пример.
Var god : string[4];
bukva : char;
Это означает, что переменная god– строка, включающая максимум 4 символа, а переменнаяbukva– единичный символ.
Доступ к символу в строкеимеет вид:
St [ Ind ]
где St – имя строки, Ind – индекс символа.
Это означает доступ к символу с номером Ind в строке St.
Пример.
god[3]
Это означает 3-й символ в строке god.
К строкам можно применять следующие операции:
+ (сцепление).
= (равно).
<> (не равно).
< (меньше).
> (больше).
<= (меньше или равно).
>= (больше или равно).
К строкам обычно применяют следующие стандартные функции:
Length(St) – длина строки St.
Concat(St1,…,StN) – соединение строк St1, …, StN.
Copy(St,Ind,N)– скопированныеNсимволов из строкиSt, начиная с позицииInd.
Pos(PodSt,St)– номер позиции, с которой начинается подстрокаPodStв строкеSt.
К строкам обычно применяют следующие стандартные процедуры:
Insert(PodSt,St,Ind)– вставка подстрокиPodStв строкуSt, начиная с позицииInd.
Delete(St,Ind,N)– удалениеNсимволов из строкиSt, начиная с позицииInd.
Задача 4.
Условие задачи. Ввести строку с названием купленного товара. Если товар не является вещью, то объединить строку с названием товара и слово «вкусно».
Программа.
Program z4;
Var
tovar : string[10];
itog : string[20];
Begin
readln(tovar);
if not(tovar='Вещь')
then itog:=tovar+' - вкусно';
writeln(itog);
End.
Контрольный пример.
Исходные данные: |
Товар = ‘Кефир’. |
Результаты: |
Итог = ‘Кефир – вкусно’. |
4.6. Программирование задач с записями
Запись– неупорядоченный набор величин разных типов, называемых полями.
Поле– именованная величина, являющаяся частью записи.
Описание записив разделе описания переменных (Var) на языке Pascalимеет вид:
Zap : record
SP1 : T1;
…
SPN : TN
end;
где record– запись,end– конец описания записи,Zap– имя записи, SP1– список полей 1-й,SPN– список полейN-й,T1– тип полей в 1-м списке,TN– тип полей вN-м списке.
Это означает, что переменная Zap является записью, включающей поля в списке SP1 типа T1 , … поля в списке SPN типа TN.
Пример.
Var
computer : record
nazv : string[10];
god : integer;
bystr : real;
end;
Это означает, что переменная computer– запись, включающая поляnazvстрокового типа,godцелочисленного типа,bystrвещественного типа.
Доступ к полю записиимеет вид:
Zap.Pole
где Zap– имя записи, Pole– имя поля.
Это означает доступ к полю Pole записи Zap.
Пример.
computer.nazv
Это означает поле nazvзаписиcomputer.
Оператор присоединенияимеет вид:
with Zap do Op
где with– с, do– делать, Zap– имя записи, Op– оператор.
Это означает, что с полями записи Zap надо выполнять оператор Op.
Пример 1.Ввести поля записи computer без использования оператора присоединения.
readln(computer.nazv,computer.god,computer.bystr);
Пример 2.Ввести поля записи computer с использованием оператора присоединения.
with computer do readln(nazv,god,bystr);
Задача 5.
Условие задачи. Задана запись студента с полями: фамилия, год рождения, средний балл за сессию. Начислить студенту стипендию, если известно, что за все отличные оценки начисляется стипендия в 1000 рублей, а за остальные оценки стипендия не начисляется.
Программа.
Program z5;
Var
student : record
fam: string[10];
god: integer;
ball: real;
end;
stip: real;
Begin
with student do
readln(fam,god,ball);
if student.ball=5 then stip:=1000 else stip:=0;
writeln('Стипендия – ',stip:7:2,' рублей');
End.
Контрольный пример.
Исходные данные: |
Фамилия – Иванов Год рождения – 1989 Средний балл – 5. |
Результаты: |
Стипендия – 1000 рублей. |
Задача 6.
Условие задачи. Дан массив студентов из полей записи: фамилия, год рождения, средний балл за сессию. Найти студента с максимальным средним баллом.
Программа.
Programz6;
Type
student=record
fam: string;
god: integer;
ball: real;
end;
Var
A: array [1..50] of student;
i,imax,n: integer;
max: real;
Begin
readln(n);
for i:=1 to n do
with A[i] do
readln(fam,god,ball);
max:=A[1].ball;
imax:=1;
for i:=1 to n do
if A[i].ball>max then
begin
max:=A[i].ball;
imax:=i;
end;
writeln('Фамилия -',A[imax].fam,' с баллом ',A[imax].ball);
End.
Контрольный пример.
Исходные данные: |
Фамилия |
Год рождения |
Средний балл за сессию |
Иванов |
1985 |
3,5 | |
Петрова |
1986 |
4,1 | |
Сидоров |
1984 |
4,7 | |
Результаты: |
Фамилия – Сидоров с баллом 4,7. |