В вашем браузере отключен JavaScript. Из-за этого многие элементы сайта не будут работать. Как включить JavaScript?

Учебно-Методический портал

Методические рекомендации по практическим работам на тему "Основы программирования"


Автор: Сазонова Наталья Владимировна


Тема Методические рекомендации по практическим работам по дисциплине "Основы программирования"

Квалификационная категория – высшая

Место проживания: город Великий Новгород

Учебное заведение: МПК ПТК НовГУ (Многопрофильный колледж Политехнический колледж «Новгородского государственного университета имени Ярослава Мудрого»)

Дисциплина: Основы программирования

Продолжительность курса - 26 часов

Темы занятий:

  • Программирование линейных алгоритмов;

  • Программирование разветвляющихся алгоритмов;

  • Программирование циклических алгоритмов;

  • Обработка элементов линейных массивов;

  • Обработка элементов табличных массивов;

  • Реализация методов сортировки;

  • Процедуры;

  • Функции;

  • Обработка строк;

  • Множества;

  • Комбинированный тип данных. Записи;

  • Файлы;

  • Разработка модуля.


СОДЕРЖАНИЕ



Задание №1. Программирование линейных алгоритмов


  1. Цель работы

Получение первичных навыков, составление программ на языке программирования Pascal.

  1. Перечень необходимых средств обучения:


    1. Технические средства обучения:

Компьютер Core i3 3.0, 2 Gb оперативной памяти, винчестер 250 Gb, DVD

    1. Программное обеспечение:

  • ОС Windows 10;

  • Microsoft Office 2016;

  • Интегрированная среда программирования PascalABC.

  1. Теоретические положения

Программа на языке Паскаль состоит из заголовка, разделов описаний и раздела операторов.

Заголовок программы содержит имя программы, например: Program Primer;

Описания могут включать в себя:

  • раздел подключаемых библиотек (модулей);

  • раздел описания меток;

  • раздел описания констант;

  • раздел описания типов;

  • раздел описания переменных;

  • раздел описания процедур и функций.

Раздел описания модулей определяется служебным словом Uses и содержит имена подключаемых модулей (библиотек) как входящих в состав интегрированной среды разработки, так и написанных пользователем. Раздел описания модулей должен быть первым среди разделов описаний. Имена модулей отделяются друг от друга запятыми, например:

Uses CRT, Graph;

Метки позволяют менять естественный ход выполнения программы. Ссылка на метку осуществляется оператором GOTO. Если в программе меток нет, то раздел отсутствует. Раздел имеет структуру: 
Label M1, M2, МN;

Описание констант позволяет использовать имена как синонимы констант, их необходимо определить в разделе описания констант, который существует, если в алгоритме используется по крайней мере одна величина, не изменяющая своего значения в процессе выполнения программы:

Const N= 1024; M= 2048;

В разделе описания типов программист может задать пользовательский тип, тип-диапазон или тип перечисления. Например:

Type MyArray=array[1..10] of real;

Ocenki=2..5;

Colour = (Red ,Blue,Green) .

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

Основные типы данных: - integer (целый);- real (действительное);- char (символьный);- boolean (логический); string (строка символов);

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

Var Q,R: Integer;

A,B: Char;

F1,F2: Boolean;

Раздел операторов представляет собой составной оператор, который содержит между служебными словами

Begin.......End

последовательность операторов. Операторы отделяются друг от друга символом ;. Текст программы заканчивается символом точка.

Оператор присваивания предназначен для изменения значения величины. Синтаксис: имя :=выражение;

Операторы ввода-вывода информации.

  1. Базовые операторы вывода выводят значения переменных на экран посимвольно

Write('подсказка',<список переменных>);

  1. Простейшие операторы ввода отображают вводимую с клавиатуры информацию на экране.
    Read(<список переменных>);

Кроме описаний и операторов Паскаль - программа может содержать комментарии, которые представляют собой произвольную последовательность символов, расположенную между открывающей скобкой комментариев { и закрывающей скобкой комментариев }.

Пример 1

Program Primer; {вычисление суммы двух чисел}

Var

x,y,s: integer;

Begin

WriteLn('Введите через пробел два числа ');

ReadLn(x,y);

s := x + y;

WriteLn('Сумма чисел равна ',s);

End.

Данная программа запрашивает ввод с клавиатуры двух чисел, вычисляет их сумму и выводит ответ.

Арифметические выражения – это выражения, составленные из величин, знаков операций, скобок, функций.

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

Равно =; Больше >; Меньше <; Больше или равно >=; Меньше или равно <=; Не равно <>;

(+, -, *, /, div – деление нацело, mod – вычисление остатка от деления)

Примеры выражений: a+b-c; s*0.75; (b1+b2+b3)/100; cena mod 100.

Арифметические функции

Арифметические функции можно использовать только с величинами целого и вещественного типа.

Функция

Назначение

Тип результата

abs (x)

абсолютное значение аргумента

совпадает с типом аргумента

sqr (x)

квадрат аргумента

совпадает с типом аргумента

sqrt (x)

квадратный корень аргумента

вещественный

cos (x)

косинус аргумента

вещественный

sin (x)

синус аргумента

вещественный

arctan (x)

арктангенс аргумента

вещественный

exp (x)

экспонента

вещественный

ln (x)

натуральный логарифм

вещественный

int (x)

целая часть числа

вещественный

frac (x)

дробная часть числа

вещественный


Функции преобразования типов

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

ord (x)

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

round (x)

- округляет вещественное число до ближайшего целого.

trunc (x)

- выдает целую часть вещественного числа, отбрасывая дробную.

Функции для величин порядкового типа

odd (x)

- проверяет аргумент на нечетность. Аргумент функции величина типаlongint, результат true, если аргумент нечетный, false – если четный.

pred (x)

- определяет предыдущее значение величины x.

succ (x)

- определяет последующее значение величины x.

ord (x)

- возвращает порядковый номер величины x.



  1. Задание:

  1. Согласно номеру вашего индивидуального задания, Напишите программу для вывода на экран заданной фигуры в виде:

  1. Ломаной линии

  2. Квадрата

  3. Треугольника

  4. Квадрата с левой диагональю

  5. Квадрата с правой диагональю

  6. Круга

  7. Эллипса

  8. Звезды

  9. Машинки

  10. Луны

  11. Робота

  12. Снежинки

  1. Вычислить значение выражения

  1. Площадь круга

  2. Длину и площадь окружности

  3. Значение функции

  4. Значение функции

  5. Значение функции

  6. Значение функции

  7. Значение функции z

  8. Значение функции

  9. Значение функции z

  10. Значение функции

  11. Значение функции z

  12. Значение функции z



  1. Контрольные вопросы

    1. По каким правилам задаются идентификаторы в языке Turbo Pascal?

    2. Для чего необходимо указывать типы данных?

    3. Как обозначаются арифметические операции?

    4. Какие виды делений вы знаете?

    5. Назовите стандартные процедуры ввода – вывода данных.


Задание №2. Программирование разветвляющихся алгоритмов

  1. Цель работы

Получение и закрепление навыков составления программ с использованием операторов условного и безусловного перехода.

  1. Перечень необходимых средств обучения:

    1. Технические средства обучения:

Компьютер Core i3 3.0, 2 Gb оперативной памяти, винчестер 250 Gb, DVD

    1. Программное обеспечение:

  • ОС Windows 10;

  • Microsoft Office 2016;

  • Интегрированная среда программирования PascalABC.

  1. Теоретические положения

Условный оператор позволяет при выполнении программы выбирать один из двух вариантов выполнения программы (полная форма) или выполнять некоторые действия (неполная форма).

Полная форма: If <условие> THEN <операторы 1> ELSE < операторы 2>;

Условие - это логическое выражение, в зависимости от которого выбирается одна из двух альтернативных ветвей алгоритма. Если значение условия истинно (TRUE), то будет выполняться оператор 1, записанный после ключевого слова then. В противном случае будет выполнен оператор 2, следующий за словом else, при этом оператор 1 пропускается. После выполнения указанных операторов программа переходит к выполнению команды, стоящей непосредственно после оператора if.

Необходимо помнить, что перед ключевым словом else точка с запятой никогда не ставится!

else - часть в операторе if может отсутствовать: If <условие> THEN <операторы 1>;

Следует помнить, что синтаксис языка допускает запись только одного оператора после ключевых слов then и else, поэтому группу инструкций обязательно надо объединять в составной оператор (окаймлять операторными скобками begin ... end). В противном случае возникает чаще всего логическая ошибка программы, когда компилятор языка ошибок не выдает, но программа работает неправильно.

Примеры:

  1. if x > 0 then а := x else а := -x;


  1. if k > 0 then WriteLn('k - число положительное');


  1. if min > max then begin

t := min;

min := max;

max := t;

end;

uses crt; {подключение модуля crt}

label 1;

var х:real;

begin

clrscr; {Очистка экрана}

begin

1: write(' Введите число х, большее 0. Число х=' ) ;

readln(x) ;

if x<0 then goto 1;

writeln('Корень из числа',х:2:2,' равен- ',sqrt(x) :2:2) ;

readln;

end.

Оператор выбора

Часто возникают ситуации, когда приходится осуществлять выбор одного из нескольких альтернативных путей выполнения программы. Несмотря на то, что такой выбор можно организовать с помощью оператора if .. then, удобнее воспользоваться специальным оператором выбора. Его формат:

case выражение-селектор of

вариант: оператор;

...

вариант: оператор;

end;


или

case выражение-селектор of

вариант : оператор;

...

вариант : оператор;

else оператор

end;

Выражение, которое записывается после ключевого слова case, называется селектором, оно может быть любого перечисляемого типа. Вариант состоит из одной или большего количества констант или диапазонов, разделенных запятыми. Они должны принадлежать к тому же типу, что и селектор. Из перечисленного множества операторов будет выбран только тот, перед которым записан вариант, совпадающий со значением селектора. Если такого варианта нет, выполняется оператор, следующий за словом else (если он есть).

Пример:

Var i:integer;

begin

writeln (‘Введите число от 0 до 100');

readln (i);

case i of

0,2,4, 6, 8: Writeln ('Четная цифра');

1, 3,5,7,9: Writeln ('Нечетная цифра');

10..1000: Writeln ('Между 10 и 100');

end;

readkey;

end.


  1. Задание:

Вариант № 1

  1. Является ли оператор допустимым (являются ли условным оператором)? if x+y<z then x:=x+l else if y>z then z:=0 else y:=0

  2. Составить программу, в которой из 3-х введённых чисел возводятся в квадрат положительные, а отрицательные не изменяются.

  3. Написать программу, которая по введенному дню недели выводит его название.

Вариант № 2

  1. Является ли оператор допустимым (являются ли условным оператором)? if x+y<z then if y>z then z:=0 else y:=0 else z:=0

  2. Величинам yl и у2 присвоить значения величин xl и х2 так, чтобы в у1содержалось большее из xl и х2.

  3. Написать по номеру времени года его название.

Вариант № 3

  1. Является ли оператор допустимым (являются ли условным оператором)? if x+y<z then if y>z then z:=0 else y:=0

  2. Составить программу, которая определяет существует ли треугольник с данными сторонами; вид данного треугольника; его площадь и периметр.

  3. Написать программу, которая по заданному году определяет високосный он или нет.

Вариант № 4

  1. Является ли оператор допустимым (являются ли условным оператором)?
    if x<y then x:=0 else y:=0

  1. Определить количество четных чисел из 10 заданных.

  2. Написать программу, которая по введённой оценке пишет её название (например, 4 - «хорошо»).

Вариант № 5

  1. Является ли оператор допустимым (являются ли условным оператором)? if x>y then x:=0 else read(y)

  2. Найти минимальное число из трёх предложенных.

  3. Написать программу, которая по номеру месяца напишет название времени года.

Вариант № 6

  1. Является ли оператор допустимым (являются ли условным оператором)? if x>=y then x:=0; y:=0 else write(z)

  2. Найти максимальное число из трёх предложенных.

  3. Написать программу, в результате которой по набранному количеству баллов ставится оценка (от 0 до 10 баллов неудовлетворительно, от 11 до 15 - удовлетворительно, от 16 до 18 - хорошо; 19 и 20 - отлично).

Вариант № 7

  1. Является ли оператор допустимым (являются ли условным оператором)? if a<b then 100 else z:=5

  2. Найти число положительных, отрицательных и равных нулю чисел среди 4-х заданных.

  3. Написать программу, которая использует инструкцию CASE для организации выбора одного из пунктов меню.

Вариант № 8

  1. Является ли оператор допустимым (являются ли условным оператором)? if a<b<c then z:=z+l

  2. Составить программу, которая бы определяла чётность первого, введённого числа, нечётность второго, введённого числа, и определяла бы принадлежит ли сумма этих чисел промежутку [12,35].

  3. Написать программу, которая дописывает после числа слово «доллар» в правильной форме.

Вариант № 9

  1. Является ли оператор допустимым (являются ли условным оператором)? if sqrt(z)<=3.17 then z:=z+l

  2. Написать программу, определяющую равен ли квадрат заданного трёхзначного числа кубу сумы цифр этого числа.

  3. Написать программу, которая дописывает после числа слово «рубль» в правильной форме.

Вариант № 10

  1. Является ли оператор допустимым (являются ли условным оператором)? if a<>b then z:=z+1; a:=b+1

  2. Даны три числа. Если сумма этих чисел больше их произведения, то вывести сумму этих чисел, иначе - произведение.

  3. Написать программу, которая по заданному номеру месяца пишет номер квартала.

Вариант № 11

  1. Является ли оператор допустимым (являются ли условным оператором)? if a<=b then 200 else z:=5

  2. Написать программу, определяющую, есть ли среди цифр заданного трёхзначного числа одинаковые.

  3. Вычислить полную дату следующего дня.

Вариант № 12

  1. Является ли оператор допустимым (являются ли условным оператором)? if x=y then y:=0; x:=0 else write(t)

  2. Найти минимальное число из 4-x предложенных.

  3. Вычислить полную дату предыдущего дня.

  1. Контрольные вопросы

    1. Какие зарезервированные слова могут использоваться при записи условного оператора?

    2. Какой тип должно иметь выражение, стоящее в условном операторе между словами if и then?

    3. Какие виды ветвлений вы знаете?

    4. Приведите пример составного оператора.

    5. Составные логические выражения и их использование в операторе условного перехода. Приведите примеры.

    6. Нарисуйте блок-схему алгоритмов решенных вами задач.

    7. Напишите формат записи оператора выбора.


Задание №3. Программирование циклических алгоритмов


  1. Цель работы:

Получение и закрепление навыков составления программ с использованием операторов цикла.

  1. Перечень необходимых средств обучения:


    1. Технические средства обучения:

Компьютер Core i3 3.0, 2 Gb оперативной памяти, винчестер 250 Gb, DVD

    1. Программное обеспечение:

  • ОС Windows 10;

  • Microsoft Office 2016;

  • Интегрированная среда программирования PascalABC.


  1. Теоретические положения

Операторы цикла предназначены для многократного повторения некоторой последовательности действий для некоторых последовательных значений параметра. Существует три вида циклов.

  1. В общем виде цикл "пока" записывается так:

While <условие выполнения цикла> do
begin
<тело цикла>
end.

  1. В общем виде цикл "для" записывается так

For i :=1 to n do
begin
<
тело цикла>
end.

  1. В общем виде цикл "повторять .. до" записывается так

Repeat
<тело цикла>
until <условие завершения цикла>;

Примеры:

Задача1: Составить программу нахождения суммы чисел от 3 до 12.

Program L5_01;

var

sum, i:integer;

begin

sum:=0;

for i:=3 to 12 do sum:=sum+i;

writeln (‘SUM=',sum);

readln;

end.

Задача2: Составить программу нахождения произведения чисел от 1 до n.

Program L5_02;{требуется вычислить n!=1*2*3*…*n}

var

p,n,i:integer;

begin

p:=1;

write('Введите число n');

readln(n);

for i:=1 to n do p:=p*i;

writeln ('Выражение равно',p);

readln; end.

Задача3: Составить программу, в результате которой произойдёт вывод степеней 2-ки с использованием цикла WHILE.

Program L5_03;

var

x,i,n:integer;

begin

x:=1; i:=1; read(n);

while i<=n do begin

x:=x*2;

write(x:10);

i:=i+1;end;

end.

Задача 4. Составьте программу, используя цикл Repeat для решения задачи: Дано число x, требуется делить его пополам до тех пор, пока x не станет меньше 0,1.

Program L5_04;

var x:real;

begin

read(x);

repeat

x:=x/2;

until x<0.1;

writeln(‘x=’,x);

end.


  1. Задание:

Вариант № 1

  1. Найти сумму чисел от 100 до 300.

  2. Вычислить (2+n)!

  3. Составить программу, используя цикл While: вычислить произведение нечётных чисел от 1 до n.

  4. Найти сумму чисел от 1 до n, используя цикл Repeat.

Вариант № 2

  1. Вычислить произведение натуральных чисел от 3 до 12.

  2. Составить программу, вычисляющую произведение всех чётных натуральных чисел от 1 до 12.

  3. Составить программу, используя цикл While: вычислить значение выражения: y=cosx+cos2x+cos3x+…+cosnx.

  4. Вычислить произведение всех чётных чисел от 2 до 12, используя цикл Repeat.

Вариант № 3

  1. Найти произведение чисел от 2 до 12.

  2. Составить программу, вычисляющую произведение всех чётных натуральных чисел от 278 до 290.

  3. Составить программу, используя цикл While: вычислить значение выражения: y=sinx+sin2x+sin3x+…+sinnx.

  4. Найти произведение чисел от 2 до 12, используя цикл Repeat.

Вариант № 4

  1. Составить программу, которая вычисляет сумму нечётных чисел от 12 до 45.

  2. Составить программу, вычисляющую квадратный корень для каждого натурального числа от 1000 до 1100.

  3. Составить программу, используя цикл While: вычислить значение выражения: y=cosx+cosx2+cosx3+…+cosxn.

  4. Составить программу, которая вычисляет сумму нечётных чисел от 2 до 45, используя цикл Repeat.

Вариант № 5

  1. Подсчитать сумму чисел от –50 до 0, которые являются нечётными и отрицательными.

  2. Вычислить (2n+1)!

  3. Составить программу, используя цикл While: вычислить значение выражения: y=cosx+cosx3+cosx5+…+cosx2n-1.

  4. Подсчитать сумму чисел от 2 до 50, которые являются нечётными, используя цикл Repeat.

Вариант № 6

  1. На отрезке [-5;5] подсчитать количество чётных и нечётных чисел.

  2. Дано натуральное n. Вычислить:

  3. Составить программу, используя цикл While: вычислить значение выражения y=2/1+3/2+4/3+…+(n+1)/n.

  4. Подсчитать произведение нечётных чисел от 2 до 11, используя цикл Repeat.

Вариант № 7

  1. Составить программу для вычисления суммы квадратов нечётных чисел от 1 до n.

  2. Дано натуральное n. Вычислить:

  3. Составить программу, используя цикл While: дано натуральное число N, вычислить s=1/sin1+1/(sin1+sin2)+…1/(sin1+sin2+…+sinN).

  4. Составить программу для вычисления суммы квадратов нечётных чисел от 1 до n, используя цикл Repeat.

Вариант № 8

  1. Из первых 20 чисел натурального ряда, которые делятся на 5, извлечь корень пятой степени.

  2. Составить программу для вычисления значений:

  3. Составить программу, используя, оператор с параметром For и цикл While: вычислить значение выражения: y=sin1+sin1.1+sin1.2+…+sin2.

  4. Вычислить сумму положительных чисел, введённых с клавиатуры, используя цикл Repeat.

Вариант № 9

  1. Составить программу вывода тех чисел, которые являются квадратом нечётных чисел.

  2. Вычислить: sin1+sin1.2+sin1.3+…sin2.

  3. Составить программу, используя цикл While: дано натуральное n и действительное x. Вычислить:

  1. Вычислить произведение положительных чисел, введённых с клавиатуры, используя цикл Repeat.

Вариант № 10

  1. Составить программу, которая из первых 20 чисел натурального ряда, делящихся на 5, извлекает корень пятой степени.

  2. Дано натуральное n. Вычислить:

  3. Составить программу, используя цикл While: вычислить значение выражения: y=sinx+sinx2+sinx3+…+sinxn.

  4. Вычислить сумму отрицательных чисел от –12 до 0, используя цикл Repeat.

Вариант № 11

  1. Составить программу для вычисления количества всех чётных двухзначных двузначных положительных чисел.

  2. Вычислить:

  1. Составить программу, используя цикл While: дано натуральное число N, вычислить s=1/cos1+1/( cos 1+ cos 2)+…1/( cos 1+ cos 2+…+ cos N).

  2. Вычислить сумму и произведение положительных чисел, введённых с клавиатуры, используя цикл Repeat.

Вариант № 12

  1. Составить программу для вычисления количества всех чётных двухзначных двузначных положительных чисел.

  2. Вычислить:


  1. Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько амеб будет через k часов.

  2. Проверить, является ли число, вводимое с клавиатуры, простым, используя цикл Repeat.


  1. Контрольные вопросы

    1. Дайте определение цикла.

    2. Изобразите с помощью блок – схемы команду цикла с предусловием.

    3. Изобразите с помощью блок – схемы команду цикла с постусловием.

    4. Запишите свойство цикла с постусловием.

    5. Запишите свойство цикла с постусловием.

    6. Какой цикл называется итерационным?

    7. Когда используется цикл For?




Задание №4. Обработка элементов линейных массивов


  1. Цель работы

Получение и закрепление навыков составления программ с использованием одномерных массивов. Изучить основные алгоритмы обработки элементов массивов.


  1. Перечень необходимых средств обучения:

    1. Технические средства обучения:

Компьютер Core i3 3.0, 2 Gb оперативной памяти, винчестер 250 Gb, DVD

    1. Программное обеспечение:

  • ОС Windows 10;

  • Microsoft Office 2016;

  • Интегрированная среда программирования PascalABC.

  1. Теоретические положения

Массив – это упорядоченная совокупность однотипных данных.

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

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

A: array[1..10} of real

B: array[0..2, 0..3] of integer

Порядковый номер элемента массива называется индексом. Например, индекс элемента i. Значение i-го элемента массива a[i].

Вводить и выводить массивы можно только поэлементно.

Пример 1. Ввод и вывод одномерного массива.

const

n = 5;

type

mas = array[1..n] of integer;

var

a: mas;

i: byte;

begin

writeln('введите элементы массива');

for i:=1 to n do readln(a[i]);

writeln('вывод элементов массива:');

for i:=1 to n do write(a[i]:5);

end.


Задача: Вычислить сумму и произведение элементов массива (элементы массива вводятся с клавиатуры).

const n=10;

var Mas: array[0..n] of integer;

I : integer;

sum, pr : integer;

begin

// Ввод элементов массива Mas с клавиатуры

for i := 1 to n do

begin

Write('Mas[',i,']=');

ReadLn (Mas[i]);

end;

sum := 0;

pr := 1;

for i := 1 to n do

begin

sum := sum + Mas[i];

pr := pr * Mas[i];

end;

WriteLn('Сумма элементов массива',sum);

WriteLn('Произведение элементов массива',pr);

ReadLn

end.


  1. Задание:

Вариант № 1

  1. Найти сумму и произведение элементов массива X (массив вводится с клавиатуры), больших 8.

  2. Дан массив целых чисел B, определить сумму первого и последнего элемента массива и вывести её на экран (элементы массива заполняются случайными числами).

Вариант № 2

  1. Найти количество элементов массива больших 10 (массив вводится с клавиатуры).

  2. Найти наибольший элемент массива A (массив заполняется случайными числами).

Вариант № 3

  1. Найти количество равных нулю элементов массива X (массив вводится с клавиатуры).

  2. Найти наименьший элемент массива A (массив заполняется случайными числами).

Вариант № 4

  1. Найти количество и сумму положительных элементов массива X (массив вводится с клавиатуры).

  2. Дан массив целых чисел B, определить первый отрицательный элемент массива и вывести его на экран (элементы массива заполняются случайными числами).

Вариант № 5

  1. Найти количество и сумму отрицательных элементов массива X (массив вводится с клавиатуры).

  2. Дана последовательность положительных целых чисел, за которыми следует 0 (признак конца строки), найти их среднее арифметическое чисел.

Вариант № 6

  1. Найти сумму и произведение элементов массива X стоящих на нечётныx местах.

  2. Дан массив X. Сформировать массив Y следующим образом, переписав элементы массива X в массив Y в обратном порядке.

Вариант № 7

  1. Найти сумму элементов и произведение массива X стоящих на чётных местах.

  2. Поменять местами наибольший и наименьший элементы массива A (массив заполняется случайными числами) и вывести элементы массива A на экран.

Вариант № 8

  1. Найти среднее арифметическое элементов массива X (массив вводится с клавиатуры).

  2. Найти среднее арифметическое элементов массива X, лежащих в интервале [1, 50] (массив заполняется случайными числами).

Вариант № 9

  1. Найти среднее арифметическое всех положительных элементов массива X (массив вводится с клавиатуры).

  2. Дан массив X состоящий из 10 элементов, переставить местами группы элементов с 3-5 и 7-9 элементы.

Вариант № 10

  1. Дан массив X целых чисел, вывести квадраты нечетных (четных) чисел и их сумму.

  2. Дан массив X состоящий из 10 элементов. Сформировать массивY по следующему правилу:Y[1]=X[1]+X[10], Y[2]=X[2]+X[8] и т д.

Вариант № 11

  1. Дан массив X целых чисел, расположить все нули массива вправо.

  2. Дан массив X. Сформировать массив Y следующим образом, переписав элементы массива X в массив Y в обратном порядке.

Вариант № 12

  1. Дан массив X целых чисел, расположить все нули массива влево.

  2. Найти количество одинаковых элементов массива X и вывеси их на экран.


  1. Контрольные вопросы

    1. Дайте определение массива.

    2. Какие виды массивов вы знаете?

    3. Общие формы объявления одномерного массива. Доступ к элементам массива.

    4. Использование циклов при обращении к элементам массива.


Задание №5. Обработка элементов табличных массивов


  1. Цель работы

Получить и закрепить навыки составления программ с использованием двумерных массивов.


  1. Перечень необходимых средств обучения:

    1. Технические средства обучения:

Компьютер Core i3 3.0, 2 Gb оперативной памяти, винчестер 250 Gb, DVD

    1. Программное обеспечение:

  • ОС Windows 10;

  • Microsoft Office 2016;

  • Интегрированная среда программирования PascalABC.


  1. Теоретические положения

Табличные массивы на языке программирования Паскаль описываются так: A: array [1..n, 1..m] of базовый_тип.

При этом описание может быть в разделе type и тогда создается новый тип, который можно использовать при объявлении переменных. Или массив может быть описан непосредственно в разделе переменных. m и n – это константы, их можно опустить и вставить конкретные значения, но лучше так не делать. Обычно подразумевают, что в интервале от 1 до n определяется количество строк, а в интервале от 1 до m – количество столбцов массива.

1 вариант – описание массива через раздел type:

const

M = 10;

N = 5;

type

matrix = array [1..N, 1..M] of integer;

var

Mas: matrix;


2 вариантописание массива в разделе переменных:

const

M = 10;

N = 5;

var

Mas: array [1..N, 1..M] of integer;

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

Задача 1. Ввести элементы двумерного массива Mas(n,m) и вывести их на экран в виде матрицы (элементы массива вводятся с клавиатуры).

const n=10; m=5;

var Mas : array[1..n,1..m] of integer;

i,j : integer;

begin

// Ввод элементов массива Mas с клавиатуры

for i := 1 to n do

for j := 1 to m do

begin

Write('Mas[',i,' ',j',']=');

ReadLn (Mas[i,j]);

end;

for i := 1 to n do

begin

Writeln;

for j := 1 to m do

write(mas[i,j],' ');

end;

ReadLn

end.


Задача 2. Найти сумму и произведение элементов массива (элементы массива заполняются случайными числами).

const n=10; m=5;

var Mas : array[1..n,1..m] of integer;

i,j : integer;

sum, pr : integer;

begin

// включаем генератор случайных чисел

Randomize;

// заполняем массив случайными числами и выводим его на экран

for i := 1 to n do

begin

writeln;

for j := 1 to m do

begin

Mas[i] := random(20);

Write(mas[i,j],' ');

End;

End;

sum := 0;

pr := 1;

for i := 1 to n do

for j := 1 to m do

begin

sum := sum + Mas[i,j];

pr := pr * Mas[i,j];

end;

WriteLn('Сумма элементов массива=',sum);

WriteLn('Произведение элементов массива=',pr);

ReadLn

end.


  1. Задание:

Вариант № 1

  1. Ввести элементы двумерного массива A(2,4) и вывести их на экран в виде матрицы (элементы массива вводятся с клавиатуры).

  2. Дана матрица размером 3х3. Заполнить случайными числами, получить сумму второго и предпоследнего элемента массива и вывести на экран монитора массив и полученную сумму.

Вариант № 2

  1. Ввести элементы двумерного массива A(4,5) и вывести их на экран в виде матрицы (элементы массива вводятся с клавиатуры).

  2. Дана матрица размером 3х3. Заполнить случайными числами. Поменять местами первый и последний элементы массива и вывести на экран монитора полученный массив.

Вариант № 3

  1. Ввести элементы двумерного массива A(3,5) и вывести их на экран в виде матрицы (элементы массива вводятся с клавиатуры).

  2. Дана матрица размером 3х3. Заполнить случайными числами. Подсчитать произведение элементов, стоящих на главной диагонали и вывести на экран монитора.

Вариант № 4

  1. Ввести элементы двумерного массива A(4,4) и вывести их на экран в виде матрицы (элементы массива вводятся с клавиатуры).

  2. Дана матрица А размером 3х3. Заполнить случайными числами и вывести на экран монитора. Сформировать матрицу, полученную в результате произведения матрицы на число, вводимое с клавиатуры и вывести её на экран монитора.

Вариант № 5

  1. Ввести элементы двумерного массива A(4,3) и вывести их на экран в виде матрицы (элементы массива вводятся с клавиатуры).

  2. Даны две матрицы А и В размером 3х3. Заполнить матрицы случайными числами и вывести на экран монитора. Сформировать матрицу С, полученную в результате суммы матрицы А и матрицы В.

Вариант № 6

  1. Ввести элементы двумерного массива A(5,4) и вывести их на экран в виде матрицы (элементы массива вводятся с клавиатуры).

  2. Даны две матрицы А и В размером 3х3. Заполнить матрицы случайными числами и вывести на экран монитора. Сформировать матрицу С, полученную в результате разницы матрицы А и матрицы В.

Вариант № 7

  1. Ввести элементы двумерного массива A(4,4). Найти транспонированную матрицу и вывести их на экран (элементы массива вводятся с клавиатуры).

  2. Даны две матрицы А и В размером 3х3. Заполнить матрицы случайными числами и вывести на экран монитора. Сформировать матрицу С, полученную в результате произведения матрицы А на максимальный элемент матрицы В.

Вариант № 8

  1. Ввести элементы двумерного массива A(3,3) и вывести их на экран в виде матрицы (элементы массива вводятся с клавиатуры). Найти сумму и произведение максимальных элементов строк и вывести их на экран монитора.

  2. Даны две матрицы А и В размером 3х3. Заполнить матрицы случайными числами и вывести на экран монитора. Сформировать матрицу С, полученную в результате произведения матрицы В на минимальный элемент матрицы А.

Вариант № 9

  1. Ввести элементы двумерного массива A(4,4). Недиагональные элементы массива заменить на 0, а к диагональным прибавить число, вводимое с клавиатуры. Вывести полученный массив на экран в виде матрицы (элементы массива вводятся с клавиатуры).

  2. Заполнить двумерный массив (3,4) случайными числами. Отсортировать построчно и вывести на экран монитора в виде матрицы.

Вариант № 10

  1. Ввести элементы двумерного массива A(3,2) и вывести их на экран монитора элементы, стоящие на диагонали матрицы, а также элементы массива в виде матрицы (элементы массива вводятся с клавиатуры).

  2. Дана матрица А размером 3х3. Заполнить матрицу случайными числами и вывести на экран монитора. Найти произведение максимального и минимального элемента массива и вывести на экран монитора.

Вариант № 11

  1. Ввести элементы двумерного массива A(3,3). Найти максимальный и минимальный элементы массива. Полученный массив вывести на экран в виде матрицы (элементы массива вводятся с клавиатуры).

  2. Даны две матрицы А, В, размером 3 на 3. Заполнить матрицы случайными числами и вывести на экран монитора. Элементы, стоящие на чётных местах сложить.

Вариант № 12

  1. Ввести элементы двумерного массива A(4,4). Найти максимальный и минимальный элементы массива и поменять их местами. Полученный массив вывести на экран в виде матрицы (элементы массива вводятся с клавиатуры).

  2. Даны две матрицы А, В, размером 3 на 3. Заполнить матрицы случайными числами и вывести на экран монитора. Элементы, стоящие на нечётных местах перемножить.


  1. Контрольные вопросы

    1. Как описывается табличный массив?

    2. Как осуществляется обращение к каждому элементу табличного массива?

    3. Сформулируйте условия нахождения элементов матрицы на главной диагонали.

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


Задание №6. Реализация методов сортировки


  1. Цель занятия:

Научиться применять алгоритмы сортировки массивов


  1. Перечень необходимых средств обучения:

    1. Технические средства обучения:

Компьютер Core i3 3.0, 2 Gb оперативной памяти, винчестер 250 Gb, DVD

    1. Программное обеспечение:

  • ОС Windows 10;

  • Microsoft Office 2016;

  • Интегрированная среда программирования PascalABC.


  1. Теоретические положения

Методы простой сортировки

Алгоритмы сортировки отличаются друг от друга степенью эффективности, под которой понимается количество сравнений и количество обменов, произведенных в процессе сортировки.

Сортировка простым выбором.

Рассмотрим идею на примере. Пусть исходный массив А состоит из 10 элементов: 5 13 7 9 1 8 16 4 10 2. После сортировки массив должен выглядеть так: 1 2 4 5 7 8 9 10 13 16.

Процесс сортировки выполняется следующим образом: максимальный элемент текущей части массива меняется местами с последним элементом. При этом длина отсортированной части увеличивается.

Количество сравнений. При первом просмотре N-1, при втором – N-2, при последнем – 1. Общее количество С=N-1+N-2+1= N* (N-1)/2 (сумма элементов арифметической прогрессии) или C=O (N2).

Сортировка простым обменом.

Рассмотрим идею метода на примере. Отсортируем по возрастанию массив из 5 элементов: 5 4 8 2 9. Длина текущей части массива – N-k+1, где k - номер просмотра, I – номер первого элемента проверяемой пары, номер последней пары – N-k.

Первый просмотр: рассматривается весь массив.


I=1 5 4 8 2 9

> меняем

I=2 4 5 8 2 9

< не меняем

I=3 4 5 8 2 9

> меняем

I=4 4 5 2 8 9

< не меняем

9 находится на своем месте.

Второй просмотр: рассматриваем часть массива с первого до предпоследнего элемента.

I=1 4 5 2 8 9

< не меняем

I=2 4 5 2 8 9

> меняем

I=3 4 2 5 8 9

< не меняем

8 – на своем месте.

Третий просмотр: рассматриваемая часть массива содержит три первых элемента.

I=1 4 2 5 8 9

> меняем

I=2 2 4 5 8 9

< не меняем

5 – на своем месте.

Четвертый просмотр: рассматриваем последнюю пару элементов.

I=1 2 4 5 8 9

< не меняем

4 – на своем месте. Наименьший элемент – 2 оказывается на первом месте. Количество просмотров элементов массива равно N-1.

Массив отсортирован. Этот метод также называют методом «пузырька». Название это происходит от образной интерпретации, при которой в процессе выполнения сортировки более «легкие» элементы (элементы с заданным свойством) всплывают на «поверхность».

При сортировке методом «пузырька» выполняется N-1 просмотров, на каждом i-просмотре производится N-I сравнений. Общее количество С равно N* (N-1)/2, или O (N2).

Сортировка простыми вставками.

Сортировка этим методом производится последовательно шаг за шагом. На i-ом шаге считается, что часть массива, содержащая первые i-1 элементов, уже упорядочена, то есть A[1]≤A[2]≤…≤A[i-1]. Далее берется i-й элемент, и для него подбирается место в отсортированной части массива, такое, что после его вставки упорядоченность не нарушается, то есть требуется найти такое j (0≤j≤i-1), что A[j]≤A[i]<A[j+1] (при j=0 происходит только одно сравнение, если не использовать «барьерную» технику). Затем выполняется вставка элемента A[i] на место j. На каждом шаге отсортированная часть массива увеличивается. Для выполнения полной сортировки потребуется выполнить N-1 шаг.

Оценим эффективность метода. Для массива, например, 1 2 3 4 5 6 7 8 потребуется N-1 сравнение (напомним, что мы сортируем в порядке возрастания), а для массива 8 7 6 5 4 3 2 1 – N*(N-1)/2 или C=O (N2).

Методы быстрой сортировки

Быстрая сортировка. Метод предложен Ч. Э. Р. Хоаром в 1962 году. Эффективность метода достаточно высокая, кроме специально подобранных данных, поэтому автор назвал его «быстрой сортировкой».

Идея метода. В исходном массиве А выбирается некоторый элемент X (барьерный элемент). Нашей целью является запись X «на свое место» в массиве, пусть это будет место k, такое, что слева от X были элементы массива, меньшие или равные X, а справа – элементы массива, большие X, т.е. массив А будет иметь вид: (A[1], A[2], …, A[k-1]), A[k] (X), (A[k+1], …, A[n]).

В результате элемент A[k] находится на своем месте и исходный массив А разделен на две неупорядоченные части, барьером между которыми является элемент A[k]. Дальнейшие действия очевидны- независимо сортировать полученные части по той же логике до тех пор, пока не останутся части массива, состоящие из одного элемента, то есть пока не будет отсортирован весь массив.

Пример. Исходный массив состоит из 8 элементов: 8 12 3 7 19 11 4 16. В качестве барьерного элемента возьмем средний элемент массива (7). Произведя необходимые перестановки, получим: (4 3) 7 (12 19 11 8 16), элемент 7 находится на своем месте. Продолжаем сортировку.

Левая часть: (3) 4 7 (12 19 11 8 16)

3 4 7 (12 19 11 8 16)

Правая часть:

3 4 7 (8) 11 (19 12 16)

3 4 7 8 11 (19 12 16)

3 4 7 8 11 12 (19 16)

3 4 7 8 11 12 (16) 19

3 4 7 8 11 12 16 19


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

  1. Задание:

Вариант № 1

Дан массив целых чисел осуществить сортировку четных элементов массива.

Вариант № 2

Дан массив целых чисел осуществить сортировку элементов массива записанных на нечетных местах.

Вариант № 3

Дан массив целых чисел осуществить сортировку отрицательных элементов массива.

Вариант № 4

Дан массив целых чисел осуществить сортировку положительных элементов массива.

Вариант № 5

В упорядоченный по возрастанию значений элементов массив М, состоящий из целых чисел, необходимо вставить число, не нарушив упорядоченности исходного массива.

Вариант № 6

Задан массив М, состоящий из N целочисленных элементов. Упорядочить элементы таким образом, чтобы вначале располагались все нечетные аргументы, а после них все четные.

Вариант № 7

Задан массив М, состоящий из N целочисленных элементов. Упорядочить элементы таким образом, чтобы вначале располагались все четные аргументы, а после них все нечетные.

Вариант № 8

Задан массив М, состоящий из N целочисленных элементов. Упорядочить элементы таким образом, чтобы вначале располагались все положительные аргументы, а после них все отрицательные.

Вариант № 9

Задан массив М, состоящий из N целочисленных элементов. Упорядочить элементы таким образом, чтобы вначале располагались все отрицательные аргументы, а после них все положительные.

Вариант № 10

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


  1. Контрольные вопросы

    1. Какие методы сортировки вы знаете?

    2. В чем суть их различий?


Задание №7. Процедуры


  1. Цель занятия:

Научиться структурировать сложные задачи на простые подзадачи и использовать для их реализации подпрограммы - процедуры.


  1. Перечень необходимых средств обучения:

    1. Технические средства обучения:

Компьютер Core i3 3.0, 2 Gb оперативной памяти, винчестер 250 Gb, DVD

    1. Программное обеспечение:

  • ОС Windows 10;

  • Microsoft Office 2016;

  • Интегрированная среда программирования PascalABC.


  1. Теоретические положения

Подпрограммой называется повторяющаяся группа операторов, оформленных в виде самостоятельной подпрограммной единицы.

В языке Паскаль реализованы подпрограммы двух видов: процедуры и функции.

Описание процедуры:

Procedure <имя> (<список параметров>); {заголовок процедуры}

<блок описаний>

Begin {начало исполняемой части процедуры}

<тело процедуры (исполняемая часть)>

End; { конец процедуры }

Структура процедуры почти полностью совпадает со структурой программы. Исключения:

  • Заголовок: начинается с зарезервированного слова Procedure (а не Program), кроме того содержит список параметров.

  • Параметры – это «средство связи» процедуры с программой и с другими процедурами, механизм обмена данными.

Параметры процедуры бывают двух видов:

  • параметры-значения, или входные параметры – это исходные (входные) данные, передаваемые в процедуру. Их значения после окончания работы процедуры остаются неизменившимися. Описание параметров-значений: <имя> : <тип>;

  • параметры-переменные, или выходные параметры – это результаты работы процедуры, передаваемые обратно в программу или другую процедуру. Их значения после окончания работы процедуры изменяются. Описание параметров-переменных: Var <имя> : <тип>.

Например, процедура может иметь такой заголовок:

Procedure Calculate ( x, y : integer; var z : integer; var f : real );

Имя этой процедуры Calculate. Она имеет 4 параметра: два входных (или параметра значения) – это параметры x и y целого типа; два выходных (или параметра-переменных) – z целого типа и f вещественного типа. Так как типы у них различны, перед описанием каждого указано зарезервированное слово Var.

Параметры, указанные при описании процедуры (т.е. в ее заголовке) называются формальными, т.к. процедура – это по сути формальное правило получения некоторых результатов из некоторых исходных данных. Конкретным смыслом формальные параметры наполняются при вызове процедуры.

Можно использовать процедуры и без параметров.

Блок описаний может содержать те же разделы, что и блок описаний программы (Const, Type, Var, Procedure, Function), за исключением описания подключения модулей библиотек Uses (модули подключаются только в блоке описаний в основной программе!).

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

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

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

Вызов процедуры:

может осуществляться из основной программы или процедуры, описанной после вызываемой. При вызове указывается имя процедуры и список фактических параметров, т.е. тех, которые будут «подставлены» на место формальных. Количество, порядок и типы фактических параметров должны совпадать с количеством, порядком и типами формальных параметров. Например, процедуру Calculate, заголовок которой был описан выше, можно вызвать следующим образом:

Calculate( a, b, c, d ); - при условии, что a, b, c имеют тип Integer, d – Real.

Calculate( 23, р+14, q, w ); - если p и q имеют тип Integer, а w – Real.

Задача1: Даны 4 числа a,b,c,d. Вычислить разность s1=a-b, s2=c-d, используя процедуру. Поменять местами значения переменных s1 и s2, используя процедуру.

Program lab16_01;

var

a,b,c,d:integer;

s1,s2:integer;

s:integer;

procedure razn(x,y:integer);

begin

s:=x-y;

end;

procedure zamena(x,y:integer);

var

z:integer;

begin

z:=x; x:=y; y:=z;

end;

begin

writeln('Введите 4 числа');

readln(a,b,c,d);

razn(a,b); s1:=s;

razn(c,d); s2:=s;

writeln('Разность s1=',s1,' Разность s2=',s2);

zamena(s1,s2);

writeln(' Разность s1=',s1,' Разность s2=',s2);

readln;

end.

Задача2: Составить программу, используя процедуру, которая вычисляет количество символов ‘+’ в строке s, если в строке s количество символов ‘-’ больше 3.

Program lab16_02;

var

s:string;

n:integer;

procedure chet(s:string;c:char);

var

i:integer;

begin

for i:=1 to length(s) do

if s[i]=c then n:=n+1;

end;


begin

writeln('Vvedite ctroky cimvolov');

readln(s);

chet(s,'-');

if n>3 then

begin

n:=0;

chet(s,'+');

writeln('kol-vo '+' n=',n);

end

else writeln('Подсчёта нет');

readln;

end.


  1. Задание:

Вариант № 1

  1. Даны 4 числа a,b,c,d. Вычислить деление s1=a/b, s2=c/d, используя процедуру. Поменять местами значения переменных s1 и s2, используя процедуру.

  2. Составить программу, используя процедуру, которая вычисляет количество символов ‘$’ в строке s, если в строке s количество символов ‘a’ не больше 5.

Вариант № 2

  1. Даны 4 числа a,b,c,d. Вычислить сумму s1=a+b, s2=c+d, используя процедуру. Поменять местами значения переменных s1 и s2, используя процедуру.

  2. Составить программу, используя процедуру, которая вычисляет количество символов ‘&’ в строке t, если в строке t первый символ пробел.

Вариант № 3

  1. Даны 3 числа a,b,c. Вычислить произведение s1=a*b, s2=a*c, используя процедуру. Поменять местами значения переменных s1 и s2, используя процедуру.

  2. Составить программу, используя процедуру, которая вычисляет количество символов ‘$’ и ‘&’ в строке s, если в строке s первый и последний символы одинаковые.

Вариант № 4

  1. Даны 3 числа a,b,c. Вычислить деление s1=a/b, s2=a/c, используя процедуру. Поменять местами значения переменных s1 и s2, используя процедуру.

  2. Составить программу, используя процедуру, которая вычисляет количество символов ‘.’ и ‘,’ в строке t, если в строке t второй и предпоследний символы одинаковые.

Вариант № 5

  1. Даны 4 числа a,b,c,d. Вычислить произведение s1=a*b, s2=c*d, используя процедуру. Поменять местами значения переменных s1 и s2, используя процедуру.

  2. Составить программу, используя процедуру, которая вычисляет количество символов ‘*’ в строке s, если в строке s последний символ не ‘f’ или не пробел.

Вариант № 6

  1. Даны 3 числа a,b,c. Вычислить произведение s1=a*b, s2=a*c, используя процедуру. Поменять местами значения переменных s1 и s2, используя процедуру.

  2. Составить программу, используя процедуру, которая вычисляет количество символов ‘~’ в строке t, если в строке t первый символ пробел и последний символ не ‘f’.

Вариант № 7

  1. Даны 8 чисел a,b,c,d,a1,b1,c1,d1. Вычислить сумму s1=a+a1, s2=b+b1, s3=c+c3, s4=d+d1, используя процедуру. Поменять местами значения переменных s1 и s4, s2 и s3, используя процедуру.

  2. Составить программу, используя процедуру, которая вычисляет количество символов ‘*’ в строке s, если в первой половине строки s менее 12 символов и если в последней четверти строки t нет символов от ‘a’ до ‘z’.

Вариант № 8

  1. Даны 8 чисел a,b,c,d,a1,b1,c1,d1. Вычислить произведение s1=a*a1, s2=b*b1, s3=c*c3, s4=d*d1, используя процедуру. Поменять местами значения переменных s1 и s3, s2 и s4, используя процедуру.

  2. Составить программу, используя процедуру, которая вычисляет количество символов ‘?’ в строке t, если во второй половине строки s более 10 символов и если в первой четверти строки t нет символов от ‘.’ до ‘,’.

Вариант № 9

  1. Даны 8 чисел a,b,c,d,a1,b1,c1,d1. Вычислить деление s1=a/a1, s2=b/b1, s3=c/c3, s4=d/d1, используя процедуру. Поменять местами значения переменных s1 и s4, s3 и s1, используя процедуру.

  2. Составить программу, используя процедуру, которая вычисляет количество символов ‘a’ в строке t, если в строке s количество символов ‘,’ не превышает 7 и если в первой четверти строки s нет символов ‘z’.

Вариант № 10

  1. Даны 3 числа a,b,c. Вычислить сумму s1=a+b, s2=a+c, используя процедуру. Поменять местами значения переменных s1 и s2, используя процедуру.

  2. Составить программу, используя процедуру, которая вычисляет количество символов ‘+’ в строке t, если в строке s менее 10 символов.

Вариант № 11

  1. Даны 8 чисел a,b,c,d,a1,b1,c1,d1. Вычислить сумму s1=a+a1, s2=b+b1 и разность s3=c-c3, s4=d-d1, используя процедуру. Поменять местами значения переменных s1 и s3, s2 и s4, используя процедуру.

  2. Составить программу, используя процедуру, которая вычисляет количество символов ‘+’ в строке s, если в строке s более 8 символов и если в последней четверти строки s есть хотя бы один символ ‘;’.

Вариант № 12

  1. Даны 8 чисел a,b,c,d,a1,b1,c1,d1. Вычислить произведение s1=a*a1, s2=b*b1 и разность s3=c-c3, s4=d-d1, используя процедуру. Поменять местами значения переменных s1 и s3, s2 и s4, используя процедуру.

  2. Составить программу, используя процедуру, которая вычисляет количество символов ‘-’ в строке s, если в строке s более 8 символов и если в последней четверти строки s есть хотя бы один символ ‘*’.


  1. Контрольные вопросы

    1. Дайте определение процедуре.

    2. Опишите механизм передачи параметров.


Задание №8. Функции

  1. Цель занятия:

Получить и закрепить навыки работы с функциями.


  1. Перечень необходимых средств обучения:

    1. Технические средства обучения:

Компьютер Core i3 3.0, 2 Gb оперативной памяти, винчестер 250 Gb, DVD

    1. Программное обеспечение:

  • ОС Windows 10;

  • Microsoft Office 2016;

  • Интегрированная среда программирования PascalABC.


  1. Теоретические положения

Процедуры и функции позволяют включать в основной программный блок дополнительные блоки. Каждое описание процедуры или функции содержит заголовок, за которым следует программный блок.

Отличие функции от процедуры состоит в том, что функция не имеет выходных параметров, она возвращает единственное значение – это значение функции. Входные параметры называются еще аргументами функции.

Описание функции

Function <имя> (<список аргументов>): <тип значения функции>;

{заголовок }

<блок описания локальных данных>

Begin { начало исполняемой части функции }

<тело функции (исполняемая часть)>

End; { конец описания функции }

В теле функции обязательно должна быть команда присваивания вида:

<имя функции> := <вычисленное значение>;

которая и позволит функции возвратить вычисленное значение.

Например, опишем функцию вычисления среднего арифметического двух целых чисел:

Function middle (a, b : integer) : real;

Begin

Middle := ( a + b ) / 2

End;

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

Задача1: Даны 4 числа a,b,c,d. Вычислить разность s1=a-b, s2=c-d, используя функцию. Поменять местами значения переменных s1 и s2, используя функцию.

Program lab18_01;

var

a,b,c,d:integer;

st:string;

s1,s2,x,y:integer;

s:integer;

z:integer;

function razn(x,y:integer):integer ;

begin

razn:=x-y;

end;

function zamena(x,y:integer):string;

var

z:integer;

st1,st2:string;

begin

z:=x;

x:=y;

y:=z;

str(x,st1);

str(y,st2);

zamena:=st1+' '+st2;

end;

begin

writeln('Введите 4 числа');

readln(a,b,c,d);

s1:=razn(a,b);

s2:=razn(c,d);

writeln('Разность s1=',s1,' ' Разность s2=',s2);

st:=zamena(s1,s2);

writeln('После замены s1,s2=',st);

readln;

end.

Задача2: Даны две матрицы A и B размером 3х3. Заполнить матрицы числами, используя процедуру заполнения. Найти суммы s1 и s2 элементов матрицы A и B соответственно, используя функцию. Вывести полученные суммы на экран монитора.

type

mas=array [1..3,1..3] of integer;

var

i,j:integer;

a,b,x:mas;

s1,s2:integer;

procedure zapol;

var i,j,t:integer;

begin

for i:=1 to 3 do

for j:=1 to 3 do

read(x[i,j]);

end;

function summa(x:mas):integer;

var sum:integer;

begin

sum:=0;

for i:=1 to 3 do

for j:=1 to 3 do

sum:=sum+x[i,j];

summa:=sum;

end;

begin

writeln('Vvedite mas A');

zapol;

a:=x;

writeln('Vvedite mas B');

zapol;

b:=x;

s1:=summa(a);

s2:=summa(b);

writeln;

writeln('s1=',s1,' s2=',s2);

readln;

readln;

end.

end.


  1. Задание

Вариант № 1

  1. Даны 4 числа a,b,c,d. Вычислить деление s1=a/b, s2=c/d, используя функцию. Поменять местами значения переменных s1 и s2, используя функцию.

  2. Даны две матрицы A и B размером 3х3. Заполнить матрицы числами, используя процедуру заполнения. Найти произведение pr1 и pr2 элементов матрицы A и B соответственно, используя функцию. Вывести полученные произведения на экран монитора.

Вариант № 2

  1. Даны 4 числа a,b,c,d. Вычислить сумму s1=a+b, s2=c+d, используя функцию. Поменять местами значения переменных s1 и s2, используя функцию.

  2. Даны две матрицы A и B размером 3х3. Заполнить матрицы числами, используя процедуру заполнения. Найти произведение элементов pr1 и pr2 элементов матриц A и B, стоящих на главных диагоналях, используя функцию. Вывести полученные произведения на экран монитора.

Вариант № 3

  1. Даны 3 числа a,b,c. Вычислить произведение s1=a*b, s2=a*c, используя функцию. Поменять местами значения переменных s1 и s2, используя функцию.

  2. Даны две матрицы A и B размером 3х3. Заполнить матрицы числами, используя процедуру заполнения. Найти сумму s1 и s2 элементов матриц A и B, стоящих на главных диагоналях, используя функцию. Вывести полученные произведения на экран монитора.

Вариант № 4

  1. Даны 3 числа a,b,c. Вычислить деление s1=a/b, s2=a/c, используя функцию. Поменять местами значения переменных s1 и s2, используя функцию.

  2. Даны две матрицы A и B размером 3х3. Заполнить матрицы числами, используя процедуру заполнения. Найти разность элементов матрицы A – raz1 и разность элементов матрицы B – raz2, используя функцию. Вывести на экран полученные разности.

Вариант № 5

  1. Даны 4 числа a,b,c,d. Вычислить произведение s1=a*b, s2=c*d, используя функцию. Поменять местами значения переменных s1 и s2, используя функцию.

  2. Даны две матрицы A и B размером 3х3. Заполнить матрицы числами, используя процедуру заполнения. Найти разность элементов матрицы A, стоящих на главной диагонали – raz1 и разность элементов матрицы B, стоящих на главной диагонали – raz2, используя функцию. Вывести на экран полученные разности.

Вариант № 6

  1. Даны 3 числа a,b,c. Вычислить произведение s1=a*b, s2=a*c, используя функцию. Поменять местами значения переменных s1 и s2, используя функцию.

  2. Даны две матрицы A и B размером 3х3. Заполнить матрицы числами, используя процедуру заполнения. Найти сумму элементов матрицы A, стоящих на нечётных местах – sum1 и сумму элементов матрицы B, стоящих на нечётных местах– sum2, используя функцию. Вывести на экран полученные суммы.

Вариант № 7

  1. Даны 8 чисел a,b,c,d,a1,b1,c1,d1. Вычислить сумму s1=a+a1, s2=b+b1, s3=c+c3, s4=d+d1, используя функцию. Поменять местами значения переменных s1 и s4, s2 и s3, используя функцию.

  2. Даны две матрицы A и B размером 3х3. Заполнить матрицы числами, используя процедуру заполнения. Сформировать матрицу, полученную в результате произведения минимального элемента матрицы A на матрицу B, используя функцию.

Вариант № 8

  1. Даны 8 чисел a,b,c,d,a1,b1,c1,d1. Вычислить произведение s1=a*a1, s2=b*b1, s3=c*c3, s4=d*d1, используя функцию. Поменять местами значения переменных s1 и s3, s2 и s4, используя функцию.

  2. Даны две матрицы A и B размером 3х3. Заполнить матрицы числами, используя процедуру заполнения. Сформировать матрицу, полученную в результате произведения максимального элемента матрицы A на матрицу B, используя функцию.

Вариант № 9

  1. Даны 8 чисел a,b,c,d,a1,b1,c1,d1. Вычислить деление s1=a/a1, s2=b/b1, s3=c/c3, s4=d/d1, используя функцию. Поменять местами значения переменных s1 и s4, s3 и s1, используя функцию.

  2. Даны две матрицы A и B размером 3х3. Заполнить матрицы числами, используя процедуру заполнения. Элементы, стоящие на нечётных строчках матриц перемножить, а на чётных строчках – сложить, используя функции.

Вариант № 10

  1. Даны 3 числа a,b,c. Вычислить сумму s1=a+b, s2=a+c, используя функцию. Поменять местами значения переменных s1 и s2, используя функцию.

  2. Даны две матрицы A и B размером 3х3. Заполнить матрицы числами, используя процедуру заполнения. Найти сумму элементов матрицы A, стоящих на чётных местах – sum1 и сумму элементов матрицы B, стоящих на чётных местах– sum2, используя функцию. Вывести на экран полученные суммы.

Вариант № 11

  1. Даны 8 чисел a,b,c,d,a1,b1,c1,d1. Вычислить сумму s1=a+a1, s2=b+b1 и разность s3=c-c3, s4=d-d1, используя функцию. Поменять местами значения переменных s1 и s3, s2 и s4, используя функцию.

  2. Даны две матрицы A и B размером 3х3. Заполнить матрицы числами, используя процедуру. Подсчитать сумму s1 и s2 элементов матриц. Если s1>s2, то сформировать матрицу C=A-B, используя функцию.

Вариант № 12

  1. Даны 8 чисел a,b,c,d,a1,b1,c1,d1. Вычислить произведение s1=a*a1, s2=b*b1 и разность s3=c-c3, s4=d-d1, используя функцию. Поменять местами значения переменных s1 и s3, s2 и s4, используя функцию.

  2. Даны две матрицы A и B размером 3х3. Заполнить матрицы числами, используя процедуру. Подсчитать сумму s1 и s2 элементов матриц. Если s1>s2, то сформировать матрицу С=В-А, используя функцию.


  1. Контрольные вопросы

    1. Определение пользовательской функции. Аргументы, возвращаемое значение и тело функции. Пример.

    2. Функции без аргументов. Примеры.

    3. Вызов функции и возврат из неё. Оператор return. Пример.

    4. Использование переменных в функциях. Локальные и глобальные переменные.



Задание №9. Обработка строк


  1. Цель занятия:

Закрепить навыки составления программ с использованием строкового типа данных.


  1. Перечень необходимых средств обучения:

    1. Технические средства обучения:

Компьютер Core i3 3.0, 2 Gb оперативной памяти, винчестер 250 Gb, DVD

    1. Программное обеспечение:

  • ОС Windows 10;

  • Microsoft Office 2016;

  • Интегрированная среда программирования PascalABC.


  1. Теоретические положения


Основные процедуры и функций для работы со строковыми типами данных.

Вызов

Тип выгодного результата

Назначение

Length (st)

Integer

Функция: возвращает длину строки

+, CONCAT (ST1,ST2,…STN)

String

соединение нескольких сорок в одну

COPY (ST, n, k)

string

Функция: копирует из строки ST k символов, начиная с символа с номером п

DELETE (ST, n, k)

-

Процедура: удаляет из строки ST k символов, начиная с символа с номером п

INSERT (SUBST, ST, n)

-

Процедура: вставляет подстроку SUBST в строку ST, начиная с символа с номером п

POS (SUBST, ST)

Integer

Функция: определяет номер первого вхождения подстроки SUBST в строку ST, если подстрока не найдена, го возвращает'0.

VAL (ST, X, CODE)

Integer или Real

Процедура: преобразует строку St в число X.

STR (X, ST)

ST ; String

Процедура: преобразует число X типа real или integer в строку.


Пример функции Раs:

var х: real; st, Subst: string; NumberFirstSubst: integer;

begin

St:='Пример вхождения'; Subct:='мер';

NumberFirstSubst := pos(Subst, st);

WriteLn('Первое вхождение подстроки Subst в строку St =',NumberFirstSubst,'позиция');

ReadLn end.

Пример процедуры Val:

var x : integer;

Typelnteger' : integer; st : string;

begin St := '10'; Val(St, x, Typelnteger);

WriteLn(x); ReadLn

end.

Замечание: Тип real преобразуется аналогично

Пример процедуры Str

var х : integer; st : string; begin

x := 100;

str (x, St);

WriteLn(St);

ReadLn end.

Пример функции Copy

var st : string;

KopStr : string; begin

St := 'Пример копирования части строки';

KopStr := Copy(St, 8, 11);

WriteLn (St) ;

WriteLn(KopStr);

ReadLn end.

Пример процедуры Insert:

var st : string;

KopStr : string; begin

St := ' Пример части строки';

Insert(' вставки', St, 7);

SriteLn(St);

ReadLn end.

Пример процедуры Delete:

var st : string;

KopStr : string; begin.

St := 'Пример удаления части ненужной части строки';

Delete (St, 22, 8) ;

WriteLn(St);

ReadLn end.

Задача 1. Дана строка символов. Подсчитать количество вопросительных знаков.

var

st:string;

i, kol:integer;

begin

writeln('Введите строку символов');

readln(st);

kol := 0;

for i:=1 to length(st) do

if st[i]='?' then kol := kol + 1;

writeln(kol);

readln;

end.

Задача 2: В данной строке символов заменить все буквы ‘a’ на ‘b’.

var

st:string;

i:integer;

begin

writeln('Введите строку символов');

readln(st);

for i:=1 to length(st) do

if st[i]='a' then st[i]:='b';

writeln(st);

readln;

end.


  1. Задание:

Вариант № 1

  1. Подсчитать, сколько раз в данной строке встречается символ ‘f’.

  2. Из данной строки получить новую, заменив в ней все символы звёздочка на дефис.

  3. Из данной строки получить новую, удалив из нее вee точки.

  4. Написать программу, которая из данных двух строк получает третью строку. В полученной строке подсчитайте количество слов «ива».

Вариант № 2

  1. Подсчитать, сколько раз в данной строке встречается буквосочетание ‘ни’.

  2. Заменить все символы, стоящие на чётных местах на пробел.

  3. Из данной строки получить новую, удалив из неё все пробелы.

  4. Определить, на какую букву оканчивается первое слово.

Вариант № 3

  1. Составить программу, которая выводит данную строку наоборот.

  2. Дано арифметическое выражение, определить соответствие открытых и закрытых скобок, в случае несоответствия подсчитать их количество.

  3. Из данной строки получить новую, удалив из нее все звездочки и повторив каждый символ, отличный от звездочки.

  4. Подсчитать количество букв латинского алфавита в данной строке.

Вариант № 4

  1. Определить на какую букву оканчивается первое слово.

  2. Заменить все символы, стоящие на нечётных местах на пробел и подсчитать количество пробелов в новой строке.

  3. Из данной строки получить новую, удалив из неё текст, заключенный в круглые скобки (вместе со скобками).

  4. Поменять в строке все предлоги «в» на «с».

Вариант № 5

  1. Поменять в строке все предлоги ‘в’ на ‘с’.

  2. Из данной строки получить новую, заменив все пробелы двойными пробелами.

  3. Из данной строки получить новую, удалив из неё текст, заключенный в круглые скобки- без скобок.

  4. Определить, сколько раз в строке содержится заданное слово.

Вариант № 6

  1. Дана строка символов. Определить, есть ли в строке подряд расположенные символы: точка, запятая и дефис.

  2. Из данной строки получить новую, заменив в ней все символы, стоящие после символа звёздочка на дефис, иначе выдать сообщение.

  3. Из данной строки получить новую, заменив "sbc" на "abed".

  4. Поменяйте в строке все предлоги ‘b’ на ‘c

Вариант № 7

  1. Дана строка символов, разделённая одним или несколькими пробелами, подсчитать количество слов в строке.

  2. Найти наименьшую длину слова в заданной строке.

  3. Из данной строки получить новую, удалив из ней все группы букв «abed».

  4. Подсчитать, сколько слов начинается с последней буквы первого слова.

Вариант № 8

  1. Выдать номер позиции строки, в которой в пятый раз встречается символ ‘,’.

  2. Найти в строке первое слово, имеющее заданную длину.

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

  4. Подсчитать количество пар слов, разделённых двойными пробелами.

Вариант № 9

  1. Подсчитать, сколько слов начинается с последней буквы первого слова.

  2. Найти самое длинное слово в строке.

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

  4. Подсчитать, сколько слов оканчивается на ‘ова’.

Вариант № 10

  1. Выдать номер позиции строки, в которой впервые встречается символ ‘d’.

  2. Выяснить, есть ли в данной строке символы, входящие в слово clear.

  3. Из данной строки получить новые заменив в ней символы, стоящие после первой "*" символом"-" иначе вывести сообщение.

  4. Подсчитать сколько раз в строке встречается каждая буква латинского алфавита.

Вариант № 11

  1. Определить сколько раз в строке содержится заданное буквосочетание “ok”.

  2. Подсчитать, сколько раз в строке встречается каждая буква латинского алфавита.

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

  4. Подсчитать, сколько слов начинается на ‘ат’.

Вариант № 12

  1. Определить сколько раз в строке содержится заданное слово.

  2. Подсчитать, сколько раз в строке встречается каждая буква латинского алфавита.

  3. Из данной строки получить новую строку, преобразовав все заглавные символы латинского алфавита на строчные и наоборот.

Дан массив, элементами которого являются строки. Составить строку из тех элементов, которые начинаются с заданного символа, длина которого при этом не больше заданного числа.


  1. Контрольные вопросы

    1. Что представляет собой тип string?

    2. Какое максимально возможное количество символов может содержать строка?

    3. Как при описании строкового типа указывается длина строки?

    4. Всегда ли фактическая длина строки равна объявленной в описании?

    5. Перечислите строковые операции, функции, процедуры.

    6. Может ли в процессе выполнения программы изменяться фактическая длина строки?


Задание №10. Множества


  1. Цель занятия:

Закрепить навыки составления программ с использованием множественного типа данных.


  1. Перечень необходимых средств обучения:

    1. Технические средства обучения:

Компьютер Core i3 3.0, 2 Gb оперативной памяти, винчестер 250 Gb, DVD

    1. Программное обеспечение:

  • ОС Windows 10;

  • Microsoft Office 2016;

  • Интегрированная среда программирования PascalABC.


  1. Теоретические положения


Множество – это набор элементов одного типа.

  1. Описание множества.

Возможны два варианта задания множества:

  1. в разделе описания типов (type):

type <имя_типа>=Set of <баз_тип>;

var <имя>:<имя_типа>;

  1. в разделе описания переменных:

var <имя>:Set of <баз_тип>;

где <имя_типа> и <имя> - правильный идентификатор, <баз_тип> - любой порядковый тип (целый, логический, символьный, перечисляемый и тип-диапазон);

type

First=Set of ‘a’..’k’,’p’..’y’;

Second=Set of 0..10;

var A,B:First;

C:Second;

или

var C,D:Set of ‘a’..’z’;

F:Set of 0..10;

E:Set of byte;

В данном примере множества A, B и D могут состоять из любого набора символов от ‘a’ до ‘z’, а множества C и F из любого набора чисел от 1 до 10.

  1. Заполнение множества.

Элементы, входящие в множества должны находиться в квадратных скобках “[]” и отделяться друг от друга запятой. Количество элементов должно лежать в пределах от 0 до 255.

var C:Set ofa’..’z’;

D:Set of 0..10;

C:Set of byte;

begin

C:=[‘a’,’b’,’k’];

D:=[1,3,5];

C:=[];

end.

Множество, содержащие элементов называется пустым множеством. Для данного примера это множество C.

  1. Операции над множествами.

  1. «*» - пересечение множеств, получившиеся в результате множество содержит элементы общие для обоих множеств.

  2. «+» - объединение множеств, получившиеся в результате множество содержит элементы первого множества и недостающие элементы из второго множества.

  3. «-» - пересечение множеств, получившиеся в результате множество содержит элементы первого множества и не содержит элементы из второго множества.

  4. «=» - возвращает true, если оба множества состоят из одних и тех же элементов.

  5. «<>»- возвращает true, если оба множества не состоят из одних и тех же элементов.

  6. in – проверка принадлежности элемента (есть ли в данном множестве такой элемент), возвращает true, если принадлежит данному множеству.

Кроме операций есть две процедуры которые используются для работы со множествами:

  1. Include(<множество>,<элемент>) - добавляет в <множество> данный <элемент>.

Exclude(<множество>,<элемент>) - исключает из <множества> данный <элемент>.

Задача. Дано множество x1:=[1,2,3,4,5,6,7] и множество x2:=[1,2,3,7,8,9,10]. Требуется вывести элементы множества на экран, найти X3 - произведение двух множеств и элементы множества произведения тоже вывести на экран. Затем ввести любое число, если оно есть в множестве X3, то его исключить из X3, иначе – добавить.

type

mn=set of 1..20;

var

x1,x2,x3:mn;

x,i:integer;

begin

x1:=[1,2,3,4,5,6,7];

Writeln('Элементы множества X1');

for i:=1 to 20 do

if i in x1 then write(i,' ');

x2:=[1,2,3,7,8,9,10];

Writeln('Элементы множества X2');

for i:=1 to 20 do

if i in x2 then write(i,' ');

x3:=x1*x2;

Writeln('Элементы множества пересечения x1*x2');

for i:=1 to 20 do

if i in x3 then write(i,' ');

writeln('');

readln(x);

if x in x3 then exclude(x3,x) else x3:=x3+[x];

Writeln('Новые элементы множества x3');

for i:=1 to 20 do

if i in x3 then write(i,' ');

readln;

end.


  1. Задание:

Вариант1

  1. Дано множество A, содержащее элементы: a,b,c,d. Получить множество B из множества A добавлением элемента x, вводимого с клавиатуры. Вывести элементы множества до и после добавления на экран.

  2. Дано множество x1:=[6,7,4,9] и множество x2:=[0,2,3,7,8,9,10]. Требуется вывести элементы множества на экран, найти X3 -разность двух множеств и элементы множества разности тоже вывести на экран. Затем ввести любое число, если оно есть в множестве X3, то его исключить из полученного множества.

Вариант № 2

  1. Дано множества A, содержащее элементы: a,b,c,d. Получить множество B из множества A удалением элемента a. Вывести элементы множества до и после удаления на экран.

  2. Дано множество x1:=[6,7,4,9] и множество x2:=[0,2,3,7,8,9,10]. Найти X3 – объединение двух множеств. Затем ввести любое число, если оно есть в множестве X3, то его исключить из полученного множества. Элементы всех множеств вывести на экран.

Вариант № 3

  1. Имеются два множества символьного типа: Y1=[‘a’,’b’,’d’,’r’,’m’], Y2=[‘r’,’a’,’h’,’d’]. Сформировать новое множество X, полученное в результате пересечения двух данных множеств. Вывести на экран все три множества.

  2. Дано множество x1:=[6,7,4,9] и множество x2:=[0,2,3,7,8,9,10]. Найти X3 – пересечение двух множеств. Затем ввести любое число, если оно есть в множестве X3, то его исключить из полученного множества. Элементы всех множеств вывести на экран.

Вариант № 4

  1. Имеются два множества символьного типа: Y1=[‘a’,’b’,’d’,’r’,’m’], Y2=[‘r’,’a’,’h’,’d’]. Сформировать новое множество X, полученное в результате объединения двух данных множеств. Вывести на экран все три множества.

  2. Дано множество x1:=[6,7,4,9] и множество x2:=[0,2,3,7,8,9,10]. Найти X3 – объединение двух множеств. Затем ввести любое число, если его нет в множестве X3, то их добавить в полученное множество. Элементы всех множеств вывести на экран.

Вариант № 5

  1. Проверить, входит ли элемент, вводимый с клавиатуры в заранее определённое множество.

  2. Дано множество x1:=[6,7,4,9] и множество x2:=[0,2,3,7,8,9,10]. Найти X3 – разность двух множеств. Затем ввести любое число, если его нет в множестве X3, то их добавить в полученное множество. Элементы всех множеств вывести на экран.

Вариант № 6

  1. Заполнить множество символами латинского алфавита, которые больше символа ‘c’, но меньше символа ‘s’. Вывести на экран элементы полученного множества.

  2. Дано множество x1:=[6,7,4,9] и множество x2:=[0,2,3,7,8,9,10]. Найти X3 – пересечение двух множеств. Затем ввести любое число, если его нет в множестве X3, то их добавить в полученное множество. Элементы всех множеств вывести на экран.

Вариант № 7

  1. Дан текст из строчных латинских букв, за которым следует точка. Напечатать буквы, входящие в текст не менее 2-х раз.

  2. Переменной x присвоить множество всех целых чисел от 1 до 9, переменной y – множество всех чисел, делящихся нацело на 3 из этого диапазона, а переменной z – множество всех остальных чисел из этого диапазона.

Вариант № 8

  1. Дан текст из строчных латинских букв, за которым следует точка. Напечатать буквы, входящие в текст по одному разу.

  2. Переменной x присвоить множество всех целых чисел от 1 до 9, переменной y – множество всех чётных чисел из этого диапазона, а переменной z – множество всех нечётных чисел из этого диапазона.

Вариант № 9

  1. Имеются три множества символьного типа y1=[‘a,’b’,’d’,’r’,’m’], y2=[‘r’,’a’,’h’,’d’], y3=[‘a’,’r’]. Сформировать множество, полученное в результате X=(y1+y2)*(y1-y2). Вывести на экран элементы всех множеств. Далее проверить, включено ли множество y3 во множество x/

  2. Переменной x присвоить множество всех целых чисел от –12 до 12, переменной y – множество всех положительных из этого диапазона, а переменной z – множество всех отрицательных чисел из этого диапазона.

Вариант № 10

  1. Дано множество A, содержащее элементы: x,y,z и множество B, содержащее элементы x, d, k. Получить множество C, которое является конкатенацией множества A и B. Элементы всех множеств вывести на экран.

  2. Дано множество x1:=[16,12,40,9] и множество x2:=[40,12,3,8,9,10]. Требуется вывести элементы множества на экран, найти X3 –объединение, X4 - произведение двух множеств. X5=X4-X3. Элементы всех множеств вывести на экран.

Вариант № 11

  1. Поменять местами значения переменных-множеств A и B.

  2. Переменной x присвоить множество всех целых чисел от 1 до 10, переменной y – множество всех простых чисел из этого диапазона, а переменной z – множество всех составных чисел из этого диапазона.

Вариант № 12

  1. Не используя дополнительные переменные, поменять местами значения переменных-множеств A и B.

  2. Переменной x присвоить множество всех целых чисел от 8 до 22, переменной y – множество всех простых чисел из этого диапазона, а переменной z – множество всех составных чисел из этого диапазона.


  1. Контрольные вопросы

    1. Каким требованиям должны удовлетворять все элементы множества?

    2. Что такое базовый тип множества? Как он задается?

    3. Какое множество называется пустым? Как оно обозначается?

    4. Как задается описание множественного типа?

    5. Какие операции допустимы над множествами?

    6. Какие множества считаются равными, неравными? Имеет ли значение для сравниваемых множеств порядок следования элементов?

Задание №11. Комбинированный тип данных. Записи

  1. Цель занятия:

Научиться работать с данными комбинированного типа.


  1. Перечень необходимых средств обучения:

    1. Технические средства обучения:

Компьютер Core i3 3.0, 2 Gb оперативной памяти, винчестер 250 Gb, DVD

    1. Программное обеспечение:

  • ОС Windows 10;

  • Microsoft Office 2016;

  • Интегрированная среда программирования PascalABC.


  1. Теоретические положения

Запись - это способ организации фиксированного числа данных различного типа. Сами данные называются полями.

Структура записи: <имя>=record

<поле 1> : <тип>;

<поле 2>: <тип>;

<поле n>: <тип>;

end;

Как и любой тип, определяемый программистом, тип ЗАПИСЬ должен быть описан в разделе описания типов. После объявления типа можно определить переменную-запись.

Задача. Составить список учебной группы, включающий 5 человек. Для каждого учащегося указать Фамилию, Предмет и оценку. Информацию о каждом студенте оформить в виде записи. Совокупность записей объединить в массив. Вывести на экран фамилии студентов, которые получили 5.

Текст программы:

type

spisok=record

Fam, Pred:string;

ocenka:2..5;

end;

var

sp:array[1..5] of spisok;

i:integer;

begin

for i:=1 to 5 do

with sp[i] do

begin

write('fam[',i,']=');

readln(fam);

write('pred[',i,']=');

readln(pred);

write('оценка[',i,']=');

readln(ocenka);

end;

writeln('Фамилии отличников');

for i:=1 to 5 do

if sp[i].ocenka=5 then writeln(sp[i].fam);

readln;

end.


  1. Задание:

Вариант № 1

Составить список учебной группы, включающий 5 человек. Для каждого учащегося указать Фамилию, Год рождения и оценку. Информацию о каждом студенте оформить в виде записи. Совокупность записей объединить в массив. Определить s1 – количество студентов, фамилии которых заканчиваются на ‘a’ и s2 – количество студентов, которые занимаются на 4 и 5.

Вариант № 2

Составить список учебной группы, включающий 5 человек. Для каждого учащегося указать Фамилию, Год рождения и оценку. Информацию о каждом студенте оформить в виде записи. Совокупность записей объединить в массив. Определить s1 – количество студентов, фамилии которых начинаются на ‘п’ и s2 – количество студентов, которые занимаются на 5.

Вариант № 3

Составить список учебной группы, включающий 5 человек. Для каждого учащегося указать Фамилию, Год рождения и оценку. Информацию о каждом студенте оформить в виде записи. Совокупность записей объединить в массив. Определить s1 – количество студентов, которые занимаются на 4 и 5, и s2 – количество студентов, год рождения которых меньше, введённого с клавиатуры.

Вариант № 4

Составить список учебной группы, включающий 5 человек. Для каждого учащегося указать Фамилию, Год рождения предмет и оценку. Информацию о каждом студенте оформить в виде записи. Совокупность записей объединить в массив. Определить s1 – средний год рождения студентов и s2 – количество студентов, которые не успевают по предмету, вводимому с клавиатуры.

Вариант № 5

Составить список учебной группы, включающий 5 человек. Для каждого учащегося указать Фамилию, Год рождения предмет и оценку. Информацию о каждом студенте оформить в виде записи. Совокупность записей объединить в массив. Определить min – минимальная оценка всех студентов и s1 – количество студентов, которые по предмету, вводимому с клавиатуры, занимаются на 5.

Вариант № 6

Составить список учебной группы, включающий 5 человек. Для каждого учащегося указать Фамилию, Год рождения предмет и оценку. Информацию о каждом студенте оформить в виде записи. Совокупность записей объединить в массив. Определить s1 – количество студентов, в фамилии которых второй символ ‘a’ и s2 – количество студентов, которые занимаются на 2 и 3.

Вариант № 7

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

Вариант № 8

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

Вариант № 9

Дана структура (запись), содержащая сведения об игрушках. Указаны названия игрушек, их стоимость и возрастные границы. Получить следующие сведения: названия игрушек, которые подходят детям как 4-х, так и 10 лет.

Вариант № 10

Составить список учебной группы, включающий 5 человек. Для каждого учащегося указать Фамилию, Год рождения предмет и оценку. Информацию о каждом студенте оформить в виде записи. Совокупность записей объединить в массив. Определить s1 – количество студентов, которые по предмету, начинающемуся на 'О' имеют оценки не ниже 4. А также перечислите предметы, по которым не успевают студенты.

Вариант № 11

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

Вариант № 12

Дана структура (запись), содержащая сведения об игрушках. Указаны названия игрушек, их стоимость и возрастные границы. Получить следующие сведения: названия наиболее дешёвых игрушек, цена которых отличается от цены самой дешёвой игрушки на 100 рублей.


  1. Контрольные вопросы

    1. Почему запись называют комбинированным типом данных?

    2. Как определяется тип записи? Что называется полем записи?

    3. Что такое составное имя поля записи? Из каких частей оно состоит и как записывается?

    4. Зачем при обращении к полю записи используется оператор With?

    5. Зачем применяются записи с вариантами?



Задание №12. Файлы

  1. Цель занятия:

Получить и закрепить навыки работы с файлами

  1. Перечень необходимых средств обучения:

    1. Технические средства обучения:

Компьютер Core i3 3.0, 2 Gb оперативной памяти, винчестер 250 Gb, DVD

    1. Программное обеспечение:

  • ОС Windows 10;

  • Microsoft Office 2016;

  • Интегрированная среда программирования PascalABC.


  1. Теоретические положения

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

Для операции чтения (записи) необходимо:

  1. Объявить файловую переменную текстового типа.

  2. Связать данную переменную с файлом с помощью процедуры Assign.

  3. Открыть файл с помощью процедуры Reset (RewRite)

  4. Выполнить операцию чтения ReadLn (WriteLn)

  5. Закрыть файл с помощью Close.

  6. При операций с файлами часто применяется признак конца файла: логическая функция EOF(F):boolean, если EOF(F)=true, то это конец файла.

Операции над текстовыми файлами.

Директива

Действие

Assign( F, ‘путь к файлу’)

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

Reset(F)

Открывает существующий файл для чтения.

RewRite(F)

Открывает существующий файл для записи и стирает всю все данные, которые находились в нем.

WriteLn(F,Buf)

Делает запись Buf в файл F.

ReadLn(F,Buf)

Читает из файла F в переменную Buf.

Append(F)

Открывает файл F для добавления.

Close(F)

Закрывает существующий файл F.

Задача 1: Записать в файл любые 10 чисел, используя функцию случайных чисел. Найти сумму чётных чисел.

label 1,2;

var

f:file of integer;

n,sum,t,i:integer;

s:string;

begin

randomize;

write('full name file ');

readln(s);

writeln;

writeln('MENU':30);

writeln('1: Save');

writeln('2: Open');

writeln('3:Exit');

writeln;

1: write('?');

readln(n);

case n of

1 : begin

assign(f,s);

rewrite(f);

for i:=1 to 10 do

begin

t:=random(256);

write(f,t);

end;

close(f);

writeln('file save');

writeln;

goto 1;

end;

2 : begin

assign(f,s);

reset(f);

sum:=0;

while not eof(f) do

begin

read(f,i);

if (i mod 2=0) then sum:=sum+i;

write(i,' ');

end;

writeln;

writeln('sum=',sum);

close(f);

goto 1;

end;

end;

2: end.

Задача 2.Создайте текстовый файл, содержащий список студентов. Для каждого студента указать фамилию, год рождения и оценку. Для этого файла предусмотреть ввод данных в файл и вывод на экран.

label 1, 2;

type

rec = record

fam : string;

v, ball : integer;

end;

var f : file of rec;

c : rec;

i, n, t : integer;

s : string;

begin

Write('‚Введите путь к файлу:');

ReadLn(s);

WriteLn;

WriteLn('Меню':30);

WriteLn('1: запись данных в файл' : 40);

WriteLn('2: вывод данных из файла' : 41);

WriteLn('3: выход' : 25);

WriteLn;

1: Write(‘Выберите пункт меню’);

ReadLn(t);

Case t of

1: begin

Assign(f, s);

RewRite(f);

Write('Введите количество записей');

ReadLn(n);

for i := 1 to n do

begin

WriteLn(i, 'запись :');

Write('Фамилия ');

ReadLn(c.fam);

Write('Возраст ');

ReadLn(c.v);

Write('Оценка ',' ');

ReadLn(c.ball);

write(f,c);

end;

writeln;

writeln(' Ввод данных был произведён успешно');

close(f);

writeln;

goto 1;

end;

2: begin

assign(f,s);

reset(f);

i:=1;

while not eof(f) do

begin

read(f,c);

write(i,' запись в файле: ');

writeln(c.fam,' ',c.ball,' ',c.ball);

i:=i+1;

end;

close(f);

writeln;

goto 1;

end;

3: goto 2;

end;

2: end.

end;

ReadLn

end.


  1. Задание:

Вариант № 1

  1. Записать в файл любые 10 чисел, используя функцию случайных чисел. Найти сумму чисел, больших 25.

  2. На диске С: создать файл список.txt, содержащий список студентов. Для каждого студента указать фамилию, группу и оценку. Для этого файла предусмотрите ввод данных в файл и вывод на экран.

Вариант № 2

  1. Записать в файл любые 10 чисел, используя функцию случайных чисел. Найти произведение этих чисел.

  2. На диске С: создать файл список.txt, содержащий список дисциплин. Для каждой дисциплины указать название, количество часов и преподавателя. Для этого файла предусмотрите ввод данных в файл и вывод на экран.

Вариант № 3

  1. Записать в файл любые 10 чисел, используя функцию случайных чисел. Найти сумму квадратов этих чисел.

  2. На диске С: создать файл багаж.txt, содержащий сведения о багаже пассажиров. Для каждого багажа указать ФИО пассажира, кол-во вещей и общий вес. Для этого файла предусмотрите ввод данных в файл и вывод на экран.

Вариант № 4

  1. Записать в файл любые 10 чисел, используя функцию случайных чисел. Найти сумму нечётных чисел.

  2. На диске С: создать файл багаж.txt, содержащий сведения о багаже пассажиров. Для каждого багажа указать название багажа, общий вес и количество вещей. Для этого файла предусмотрите ввод данных в файл и вывод на экран.

Вариант № 5

  1. Записать в файл любые 10 чисел, используя функцию случайных чисел. Найти модуль суммы и квадрат произведения этих чисел.

  2. На диске С: создать файл библиотека.txt, содержащий сведения о книгах. Для каждой книги указать ФИО автора, название книги и год издания. Для этого файла предусмотрите ввод данных в файл и вывод на экран.

Вариант № 6

  1. Записать в файл любые 10 чисел, используя функцию случайных чисел. Найти наибольшее из этих чисел.

  2. На диске С: создать файл список.txt, содержащий список товаров. Для каждого товара указать название товара, количество и цену, включая данные по сумме=цена * на количество. Для этого файла предусмотрите ввод данных в файл и вывод на экран данных.

Вариант № 7

  1. Записать в файл любые 10 чисел, используя функцию случайных чисел. Найти сумму наибольшего квадрата чётного числа и произведение всех нечётных чисел, больших 10.

  2. На диске С: создать файл date.txt, содержащий различные даты. Для каждой даты указать число, месяц и год, номер дня выбранной даты в году. Для этого файла предусмотреть ввод данных в файл и вывод на экран.

Вариант № 8

  1. Записать в файл любые 10 чисел, используя функцию случайных чисел. Найти разность между суммой чётных чисел и суммой квадратов нечётных чисел.

  2. На диске C: создать файл товар.txt, содержащий сведения об экспортируемых товарах. Для каждой записи указать наименование товара, страна, объём товара, цена, сумма (=цена * кол-во). Для этого файла предусмотрите ввод данных в файл, вывод на экран.

Вариант № 9

  1. Записать в файл любые 10 чисел, используя функцию случайных чисел. Найти количество утроенных чётных чисел среди данных чисел.

  2. Создать на диске C: файл ведомость.txt, содержащий список студентов. Для каждой записи указать ФИО студента, группу, курс, предмет и оценку. Для этого файла предусмотрите ввод данных в файл и вывод на экран.

Вариант № 10

  1. Записать в файл любые 10 чисел, используя функцию случайных чисел. Найти сумму кратных 4-м чисел.

  2. Создайте на диске C: файл телефоны.txt, содержащий номера телефонов сотрудников учреждения, его инициалы и номер телефона. Для этого файла предусмотрите ввод данных в файл и вывод на экран.

Вариант № 11

  1. Записать в файл любые 10 чисел, используя функцию случайных чисел. Найти сумму этих чисел.

  2. Создайте на диске C: файл телефоны.txt, содержащий номера телефонов студентов группы, инициалы и номер телефона. Для этого файла предусмотрите ввод данных в файл и вывод на экран.

Вариант № 12

  1. Дан текстовый файл t, состоящий из непустых строк. Напечатать первую из самых коротких строк. Описать функцию count(t) для подсчёта числа строк, которые состоят из одинаковых букв.

Создайте на диске C: файл ассортимент.txt, содержащий сведения об игрушках. Для каждой записи указать название игрушки (кукла, кубики, конструктор и т.д.), её стоимость и возрастные границы (например, игрушка может быть предназначена для детей от 2-х до 5-лет). Для этого файла предусмотрите ввод данных и вывод данных на экран, а также поиск нужной информации (например, все куклы, цена которых находится в указанном интервале).


  1. Контрольные вопросы

    1. Для каких целей используется файл?

    2. Каковы требования к именам файлов?

    3. Зачем используется специальная файловая переменная? Как устанавливается соответствие файловой переменной файлу во внешней памяти?

    4. Перечислите процедуры, применяемые при работе с файлами.


Задание №13. Разработка модуля

  1. Цель занятия:

Закрепить навыки работы с модулями.

  1. Перечень необходимых средств обучения:

    1. Технические средства обучения:

Компьютер Core i3 3.0, 2 Gb оперативной памяти, винчестер 250 Gb, DVD

    1. Программное обеспечение:

  • ОС Windows 10;

  • Microsoft Office 2016;

  • Интегрированная среда программирования PascalABC.


  1. Теоретические положения

Модуль (Unit) - это файл с расширением *.pas, содержащий процедуры и функции, которые могут быть вызваны в основной программе.

Минимальная структура модуля такова:

unit <имя> //объявление модуля, после него должно стоять имя, которое обязательно должно совпадать с именем файла. Имя модуля должно совпадать с именем файла!!!

interface //все, что находится в этой части, рассматривается как глобальные объекты, которые могут использоваться другими модулями. Для процедур и функций допускается только их описание.

<интерфейсная часть>

implementation //содержит реализацию процедур и функций, описанных в интерфейсной части. Описанные здесь переменные и константы будут являться локальными для данного модуля, т.е. их нельзя будет использовать в других модулях.

<исполняемая часть>

end.

Задача: Создайте собственный модуль, который содержит процедуру замены двух переменных и функцию нахождения максимального числа из двух предложенных. Модуль назовите своим именем, после слова UNIT, сохраните модуль под этим же именем. Используя созданный модуль решите следующую задачу: Вводится два числа, эти числа требуется заменить местами и найти максимальное число из них.

Unit Mod;

Interface
{начало интерфейсной части}

procedure iswap(var i,j:integer);

function imax(i,j:integer):integer;

Implementation
{
начало исполняемой части}

procedure iswap (var i,j:integer);

var t:integer;

begin t:=i; i:=j; j:=t;

end;

function imax (i,j:integer):integer;

begin

if i>j then imax:=i else imax:=j

end;

end.

uses crt, Mod;

var

x,y:integer;

begin

clrscr;

gotoxy(3,3);

writeln('Введите два числа ');

write('x=');

readln(x);

write('y=');

readln(y);

iswap(x,y);

writeln('После замены');

writeln('x=',x,' y=',y);

textcolor(blink);

textbackground(3);

writeln('Максимальное из двух чисел = ',imax(x,y)); readkey;

end.


  1. Задание:

Вариант № 1

Создайте собственный модуль, который содержит функцию деления двух чисел и процедуру замены двух чисел местами. Модуль содержит функцию, которая вычисляет количество символов с в строке s. Используя созданный модуль, решите следующие задачи:

  1. Даны 4 числа a,b,c,d. Вычислить деление s1 =a/b, s2=c/d, используя функцию. Поменять местами значения переменных s1 и s2. используя процедуру.

  2. Составить программу, используя функцию, которая вычисляет количество символов '$' в строке s, если в строке s количество символов 'а' не больше 5.

Вариант № 2

Создайте собственный модуль, который содержит функцию суммы двух чисел и процедуру замены двух чисел местами. Модуль содержит функцию, которая вычисляет количество символов с в строке s. Используя созданный модуль, решите следующие задачи:

  1. Даны 4 числа a,b,c,d. Вычислить сумму s1=a+b, s2=c+d, используя функцию. Поменять местами значения переменных s1 и s2, используя процедуру.

  2. Составить программу, используя процедуру, которая вычисляет количество символов '&' в строке t, если в строке t первый символ пробел.

Вариант № 3

Создайте собственный модуль, который содержит функцию произведения двух чисел и процедуру замены двух чисел местами. Модуль содержит функцию, которая вычисляет количество символов с в строке s. Используя созданный модуль, решите следующие задачи:

  1. Даны 3 числа а,b,с. Вычислить произведение s1=a*b, s2=a*c, используя функцию. Поменять местами значения переменных si и s2, используя процедуру.

  2. Составить программу, используя процедуру, которая вычисляет количество символов '$' и '&' в строке s, если в строке s первый и последний символы одинаковые.

Вариант № 4

Создайте собственный модуль, который содержит функцию деления двух чисел и процедуру замены двух чисел местами. Модуль содержит функцию, которая вычисляет количество символов с в строке s. Используя созданный модуль, решите следующие задачи:

  1. Даны 3 числа а,b,с. Вычислить деление s1=a/b, s2=a/c, используя функцию. Поменять местами значения переменных s1 и s2, используя процедуру.

  2. Составить программу, используя процедуру, которая вычисляет количество символов '.' и ',' в строке t, если в строке t второй и предпоследний символы одинаковые.

Вариант № 5

Создайте собственный модуль, который содержит функцию произведения двух чисел и процедуру замены двух чисел местами. Модуль содержит функцию, которая вычисляет количество символов с в строке s. Используя созданный модуль, решите следующие задачи:

  1. Даны 4 числа a,b,c,d. Вычислить произведение s1=a*b, s2=c*d, используя функцию. Поменять местами значения переменных si и s2, используя процедуру.

  2. Составить программу, используя процедуру, которая вычисляет количество символов '*' в строке s, если в строке s последний символ не "f или не пробел.

Вариант № 6

Создайте собственный модуль, который содержит функцию произведения двух чисел и процедуру замены двух чисел местами. Модуль содержит функцию, которая вычисляет количество символов с в строке s. Используя созданный модуль решите следующие задачи:

  1. Даны 3 числа а,Ь,с. Вычислить произведение sl=a*b, s2=a*c, используя функцию. Поменять местами значения переменных si и s2, используя -процедуру.

  2. Составить программу, используя процедуру, которая вычисляет количество символов '--' в строке t, если в строке t первый символ пробели последний символ не 'f.

Вариант № 7

Создайте собственный модуль, который содержит функцию суммы двух чисел и процедуру замены двух чисел местами. Модуль содержит

функцию, которая вычисляет количество символов с в строке s.

Используя созданный модуль решите следующие задачи:

1. Даны 8 чисел a,b,c,d,a1,b1,c1,d1. Вычислить сумму s1=a+a1, s2=b+b1, s3=c+c1, s4=d+d1, используя функцию. Поменять местами значения

.переменных s1 и s4, s2 и s3, используя процедуру.

2. Составить программу, используя процедуру, которая вычисляет количество символов '*' в строке s, если в первой половине строки s менее 12 символов и если в последней четверти строки t нет символов от 'а' до 'z'.

Вариант № 8

Создайте собственный модуль, который содержит функцию произведения двух чисел и процедуру замены двух чисел местами. Модуль содержит функцию, которая вычисляет количество символов с в строке s. Используя созданный модуль, решите следующие задачи:

  1. Даны 8 чисел a,b,c,d,a1,b1,c1,d1. Вычислить произведение s1=a*a1, s2=b*b1, s3=c*c1, s4=d*d1, используя функцию. Поменять местами значения переменных s1 и s3, s2 и s4, используя процедуру.

  2. Составить программу, используя процедуру, которая вычисляет количество символов '?' в строке t, если во второй половине строки s более 10 символов и если в первой четверти строки t нет символов от '.' до ','.

Вариант № 9

  1. Даны 8 чисел a,b,c,d,a1,b1,c1,d1. Вычислить деление s1 =a/a1, s2=b/b1, s3=c/c1, s4=d/d1, используя функцию. Поменять местами значения переменных si и s4, s3 и si, используя функцию.

  2. Составить программу, используя процедуру, которая вычисляет количество символов 'а' в строке t, если в строке s количество символов ',' не превышает 7 и если в первой четверти строки s нет символов 'z'.

Вариант № 10

Создайте собственный модуль, который содержит функцию суммы двух чисел и процедуру замены двух чисел местами. Модуль содержит функцию, которая вычисляет количество символов с в строке s. Используя созданный модуль решите следующие задачи:

  1. Даны 3 числа а,b,с. Вычислить сумму s1=a+b, s2=a+c, используя функцию. Поменять местами значения переменных s1 и s2, используя процедуру.

  1. Составить программу, используя процедуру, которая вычисляет количество символов '+' в строке t, если в строке s менее 10 символов.

Вариант № 11

Создайте собственный модуль, который содержит функцию суммы двух чисел и процедуру замены двух чисел местами. Модуль содержит функцию, которая вычисляет количество символов с в строке s. Используя созданный модуль решите следующие задачи:

  1. Даны 8 чисел a,b,c,d,a1,b1,c1,d1. Вычислить сумму s1 =a+al, s2=b+b1 и разность s3=c-c1, s4=d-dl, используя функцию. Поменять местами значения переменных s1 и s3, s2 и s4, используя процедуру.

  2. Составить программу, используя процедуру, которая вычисляет количество символов '+' в строке s, если в строке s более 8 символов.

Вариант № 12

Создайте собственный модуль, который содержит функцию суммы двух чисел и процедуру замены двух чисел местами. Модуль содержит функцию, которая вычисляет количество символов с в строке s. Используя созданный модуль решите следующие задачи:

  1. Даны 8 чисел a,b,c,d,a1,b1,c1,d1. Вычислить сумму s1 =a+a1, s2=b+b1 и произведение s3=c*c1, s4=d*d1, используя функцию. Поменять местами значения переменных s1 и s3, s2 и s4, используя процедуру.

Составить программу, используя процедуру, которая вычисляет количество символов '-' в строке s, если в последней четверти строки s есть хотя бы один символ ';'.


  1. Контрольные вопросы

    1. Дайте определению модулю.

    2. Опишите структуру модуля.




Список использованной литературы

  1. Семакин И.Г. Основы программирования и баз данных: учебник для студ. учреждений сред. проф. образования / И.Г. Семакин.- М.: Издательский центр «Академия», 2014.-224с.

  2. Овечкин Г.В. Компьютерное моделирование: учебник для студ. учреждений сред. проф. образования / Г.В. Овечкин.- М.: Издательский центр «Академия», 2015.-224с.

  3. Окулов С. М. Основы программирования: учеб.пособие.- М.: БИНОМ, Лаборатория знаний, 2010.- 440 с.

  4. Кулаков В. Г. Алгоритмический язык Паскаль: Учебное пособие по дисциплине "Программирование и основы алгоритмизации". - М.: Московский гос. ин-т электроники и математики, 2010. - 41с.

  5. Денисова Э.В., Кучер А.В. Основы вычислительной математики: Учебно-методическое пособие. - СПб.: СПбГУ ИТМО, 2010. - 164с.

  6. Ключев А. О. Программное обеспечение встроенных вычислительных систем: Учебное пособие / Ключев А.О., Кустарев П.В., Ковязина Д.Р., Петров Е.В. - СПб.: СПбГУ ИТМО, 2009. - 212с.

  7. Черный А.А. Вычислительная техника в инженерных расчетах и моделировании: Учебное пособие. - Пенза: Изд-во Пенз. гос. ун-та, 2010. - 268с.


Дистанционное обучение педагогов по ФГОС по низким ценам

Вебинары, курсы повышения квалификации, профессиональная переподготовка и профессиональное обучение. Низкие цены. Более 18300 образовательных программ. Диплом госудаственного образца для курсов, переподготовки и профобучения. Сертификат за участие в вебинарах. Бесплатные вебинары. Лицензия.

Подписаться на новые Расписание вебинаров
Задать вопрос