- •«Сборник решения задач на языке Паскаль»
- •Введение.
- •Основные понятия системы программирования.
- •Среда программирования Turbo Pascal.
- •Окно среды программирования тр7 состоит:
- •Функциональные клавиши:
- •Текстовый редактор:
- •Элементы языка программирования Паскаль. Алфавит языка тр7.
- •Типы данных в языке Pascal.
- •Идентификаторы. Константы и переменные. Выражения. Комментарий.
- •Операции тр7. Операции в языке Паскаль подразделяются на:
- •Вещественное деление Целочисленное деление Деление по модулю
- •Общий вид программы в тр7.
- •Операторы тр7.
- •Операторы ввода-вывода.
- •Моя первая программа
- •Число шестнадцать записывается так: 16
- •Оператор присваивания.
- •Составной и пустой оператор. Линейные программы и алгоритмы.
- •Варианты заданий
- •Составить программу для вычисления значения функции, при целых аргументах:
- •Составить программу для решения следующих задач:
- •Составить программу для выполнения целочисленных арифметических действий (Условный оператор, оператор выбора, операторы повтора, массивы и строки не использовать):
- •Условные и безусловные операторы в языке Паскаль.
- •Варианты заданий Используя условный оператор выполните следующие задания:
- •Составить программу для вычисления значения функции при целых аргументах:
- •2. Используя сокращенную форму записи условного оператора выполнить следующие задания:
- •3 Используя вложенные условные операторы выполнить следующие задания:
- •Составить программу для выполнения следующих действий:
- •5. Используя оператор выбора выполните следующие задания:
- •Операторы повтора в языке Паскаль.
- •Циклом с предусловием;
- •Циклом с постусловием;
- •Циклом с параметром;
- •Принцип действия цикла While:
- •Пример 1: Составить программу для вычисления суммы первых 10 натуральных чисел.
- •Общая форма записи цикла Repeat…Until
- •Принцип действия цикла Repeat…Until:
- •Общий вид цикла For…to
- •Существует ещё одна форма записи цикла с параметром:
- •Варианты заданий
- •Составить программу для организации вывода по требуемому формату:
- •Составить программу для нахождения суммы конечного ряда:
- •Составить программу для обработки данных во время ввода:
- •4. Используя цикл с предусловием выполните следующие задания:
- •5. Используя цикл с постусловием выполните следующие задания:
- •6. Используя любой удобный цикл выполните следующие задания:
- •7. Решение простейших олимпиадных задач:
- •Одномерные и двумерные массивы
- •Варианты заданий Одномерные массивы
- •Составить программу для обработки элементов массива:
- •Составить программу для анализа элементов массива:
- •Использование цикла с условием при обработке элементов массива:
- •Перестановка, вставка и удаление элементов массива:
- •Логические задачи:
- •Двумерные массивы
- •Составить программу для обработки двумерного массива.
- •Литерные величины
- •Операции над строками:
- •Варианты заданий.
- •Составить программу осуществляющую поиск в строке:
- •Составить программу осуществляющую поиск и замену в строке:
- •Составить программу осуществляющую обработку цифр в строке:
- •Подпрограммы.
- •Подпрограммы-функции.
- •Подпрограммы-процедуры.
- •Область видимости идентификаторов.
- •Формальные и фактические параметры.
- •Параметры-значения, параметры-переменные, нетипизированные параметры.
- •Модули.
- •Варианты заданий.
- •Файловый тип данных
- •Варианты заданий.
- •1. Составить программу осуществляющую поиск в строке:
- •2. Составить программу осуществляющую поиск и замену в строке:
- •3. Составить программу осуществляющую обработку цифр в строке:
- •Множества
- •Варианты заданий.
- •Текстовый режим
- •Варианты заданий.
- •Составить программу для вывода заданного слова, заданного цвета в заданной строке на заданном фоне:
- •Составить программу для вывода букв заданного слова, в заданной строке на заданном фоне:
- •Варианты заданий.
Одномерные и двумерные массивы
Массив – это упорядоченная последовательность из фиксированного числа однотипных элементов, которая обозначается одним именем.
Упорядоченность элементов заключается в том, что все эти элементы располагаются в последовательных ячейках оперативной памяти.
В программировании различают следующие типы массивов:
1) Одномерные массивы (линейные таблицы);
2) Двумерные массивы (прямоугольные таблицы);
3) Многомерные массивы (трехмерные и т.д. таблицы).
Для того, чтобы обратиться к нужному элементу массива необходимо указать имя массива и его индекс. Индекс – это порядковый номер элемента в массиве.
Т.е. обращение происходит по правилу:
идентификатор_массива[индекс]
Общее количество элементов в массиве называется размерностью массива.
Прежде чем в программе использовать массив или его элементы этот массив нужно, как и любую переменную, описать. Для описания массива в Паскале использую два метода:
с описанием пользовательского типа:
type
идентификатор_типа=array[размерность] of базовый_тип_элементов;
var
идентификатор_массива:идентификатор_типа;
без описания пользовательского типа:
var
идентификатор_массива:array[размерность] of базовый_тип_элементов;
Здесь размерность указывается следующим образом:
[
1..10]
[10..100]
[5..10] одномерные массивы
[1..5]
[1..10,1..10] – двумерные массивы
Стандартные алгоритмы обработки массивов:
Ввод-вывод элементов:
Program _1;
Uses Crt;
Const n=10;
Type
massiv=array[1..n] of integer;
Var
a:massiv; i:byte;
Begin
ClrScr;
Writeln(‘Введите элементы массива:’);
For i:=1 to n do
begin
write(‘a[‘,i,’]=’);
Readln(a[i]);
end;
For i:=1 to n do
Write(a[i],’ ‘);
Readkey;
End.
Нахождение суммы, произведения, среднего арифметического элементов массива:
Program Summa;
Uses Crt;
Type
massiv=array[1..10] of integer;
Var
a:massiv; i:byte; S:integer;
Begin
ClrScr;
Writeln(‘Введите элементы массива:’);
For i:=1 to 10 do
begin
write(‘a[‘,i,’]=’);
Readln(a[i]);
end;
For i:=1 to 10 do
S:=s+a[i];
Writeln(‘S=’,S);
Readkey;
End.
Program Proizvedenie;
Uses Crt;
Var
a: array[1..10] of integer;
i:byte; P:integer;
Begin
ClrScr;
Writeln(‘Введите элементы массива:’);
For i:=1 to 10 do
begin
write(‘a[‘,i,’]=’);
Readln(a[i]);
end;
P:=1;
For i:=1 to 10 do
P:=P*a[i];
Writeln(‘P=’,P);
Readkey;
End.
Program SrArifmet;
Uses Crt;
Var
a: array[1..1000] of integer;
S,n,i:integer;Sr:real;
Begin
ClrScr;
Writeln(‘Введите размерность массива:’);Readln(n);
Writeln(‘Введите элементы массива:’);
For i:=1 to n do
begin
write(‘a[‘,i,’]=’);
Readln(a[i]);
end;
For i:=1 to n do
s:=s+a[i];
Sr:=s/n;
Writeln(‘Sr=’,Sr);
Readkey;
End.
Нахождение максимального и минимального элемента массива.
Program Maximum;
Uses Crt;
Var
a: array[1..1000] of integer;
max,n,i:integer;
Begin
ClrScr;
Writeln(‘Введите размерность массива:’);Readln(n);
Writeln(‘Введите элементы массива:’);
For i:=1 to n do
begin
write(‘a[‘,i,’]=’);
Readln(a[i]);
end;
max:=a[1];
For i:=1 to n do
if a[i]>max
then
max:=a[i];
Writeln(‘max=’,max);
Readkey;
End.
Минимальный находится аналогично.
Нахождение суммы элементов двумерного массива:
Program Summa;
Uses Crt;
Type
massiv=array[1..10,1..10] of integer;
Var
a:massiv; i,j:byte; S:integer;
Begin
ClrScr;
Writeln(‘Введите элементы массива:’);
For i:=1 to 10 do
For j:=1 to 10 do
begin
write(‘a[‘,i,’,’,j,’]=’);
Readln(a[i,j]);
end;
For i:=1 to 10 do
For j:=1 to 10 do
S:=s+a[i,j];
Writeln(‘S=’,S);
Readkey;
End.
Рассмотрим еще пример: дан массив. Найти сколько в нем пар соседних одинаковых чисел.
Program massiv;
Const m=100;
Begin
Var mas:array [1..m] of integer;
Write (‘Ввести длину массива N=’);
Readln (N);
K:=0;
For i:=1 to n do
begin
Write (‘Ввести элементы массива ‘) ;
Readln (mas[i]);
End;
For i:=1 to n-1 do
if mas[i]=mas[i+1]
then k:=k+1;
Writeln (‘ Количество пар=’,k);
End.
