Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб.работы по программированию

.pdf
Скачиваний:
30
Добавлен:
21.05.2015
Размер:
1.07 Mб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ГОУ ВПО «Оренбургский государственный педагогический университет» Физико-математический факультет

Кафедра информатики и методики преподавания информатики

Нефедова В. Ю.

Шухман А. Е.

Задания

к лабораторным работам по курсу «Языки и системы программирования»

Оренбург, 2013

© ИМПИ ОГПУ

Лабораторная работа 1. Реализация линейных алгоритмов

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

Структура Pascal-программы:

Program <имя>;

{объявление данных}

Begin

{тело программы}

End.

Пример программы:

Program Primer;

Var A, B, C : integer;

Begin

Write ('Введите первое слагаемое: А=');

Readln (A);

Write ('Введите первое слагаемое: В=');

Readln (В);

C := A+B;

Writeln ('Ответ ',C); Writeln ('Пока!');

End.

Задания для самостоятельной работы

Вариант 1

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

2.Скорость первого автомобиля V1 км/ч, второго — V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если автомобили первоначально движутся навстречу друг другу.

3.Найти площадь кольца, внутренний радиус которого равен R1, а внешний радиус равен R2 (R1 < R2).

4.Найти периметр и площадь равнобедренной трапеции с основаниями a и b (a > b) и углом alpha при большем основании (угол дан в радианах).

5.Найти корни квадратного уравнения A·x2 + B·x + C = 0, заданного своими коэффициентами A, B, C (коэффициент A не равен 0), если известно, что дискриминант уравнения неотрицателен.

Вариант 2

1.Даны два числа. Найти среднее арифметическое их квадратов и среднее арифметическое их модулей.

2.Найти периметр и площадь прямоугольного треугольника, если даны длины его катетов a и b.

©ИМПИ ОГПУ

3.Дана сторона равностороннего треугольника. Найти площадь этого треугольника и радиусы вписанной и описанной окружностей.

4.Найти периметр и площадь прямоугольной трапеции с основаниями a и b (a > b) и острым углом alpha (угол дан в радианах).

5.Найти решение системы уравнений вида A1·x + B1·y = C1, A2·x + B2·y = C2,

заданной своими коэффициентами A1, B1, C1, A2, B2, C2, если известно, что данная система имеет единственное решение.

Вариант 3

1.Скорость лодки в стоячей воде V км/ч, скорость течения реки U км/ч (U < V). Время движения лодки по озеру T1 ч, а по реке (против течения) — T2 ч. Определить путь S, пройденный лодкой.

2.Дана длина ребра куба. Найти площадь грани, площадь полной поверхности и объем этого куба.

3.Дана длина окружности. Найти площадь круга, ограниченного этой окружностью.

4.Найти расстояние между двумя точками с заданными координатами (x1, y1) и (x2, y2).

5.Дано целое четырехзначное число. Используя операции div и mod, найти сумму его цифр.

Вариант 4

1.Скорость первого автомобиля V1 км/ч, второго — V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если автомобили удаляются друг от друга.

2.Найти длину окружности и площадь круга заданного радиуса R.

3.Дана площадь круга. Найти длину окружности, ограничивающей этот круг.

4.Даны координаты трех вершин треугольника (x1, y1), (x2, y2), (x3, y3). Найти его периметр и площадь.

5.Дано целое четырехзначное число. Используя операции div и mod, найти произведение его цифр.

Лабораторная работа 2. Условный оператор

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

Структура условного оператора:

IF <УСЛОВИЕ> THEN <ОПЕРАТОР №1> ELSE <ОП.2>;

где IF, THEN, ELSE - ЗАРЕЗЕРВИРОВАННЫЕ СЛОВА (если, то, иначе)

<условие> - произвольное выражение логического типа,

<операторы> - любые операторы Паскаля.

© ИМПИ ОГПУ

Задания для самостоятельной работы

Вариант 1.

1.Подсчитать количество положительных чисел среди a, b, c.

2.Найти сумму чисел больших 10 из e, t, g.

3.Даны два действительных числа. Возвести в квадрат те из них, значения которых неотрицательны, и в четвертую степень - отрицательные.

4.Даны два действительных числа x и y, не равные друг другу. Меньшее из этих чисел заменить половиной их суммы.

5.Найти значение y=sqr(x), 0<x<1 и y=sqrt(x), 1<=x<=10.

6.Написать программу, которая по введенному числу выдает вердикт о том, большая стипендия у студента или нет (большой считать стипендию более

1000руб).

Вариант 2.

1.Подсчитать количество отрицательных чисел среди a, b, c.

2.Найти сумму чисел кратных 5 из x, y, z.

3.Даны два действительных числа. Вывести модуль отрицательного и найти корень квадратный из положительного.

4.Даны два действительных числа x и y, не равные друг другу. Меньшее из этих чисел заменить удвоенным произведением.

5.Найти значение выражения z=3x-4, 0<x<=1и z=x-sqr(x), 1<x<=10.

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

Вариант 3.

1.Подсчитать количество целых чисел среди a, b, c.

2.Найти сумму неотрицательных чисел из x, y, z.

3.Известно, что из четырех чисел а1, а2, а3, а4 одно отлично от трех других, равных между собой. Вывести это число.

4.s=max(x,y), x<0 s=min(x,y), x>=0.

5.Найти значение выражения z=|3x-4|, -100<x<0 и z=x-sqr(x), 0<x<=100.

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

Вариант 4.

1.Подсчитать количество чисел не равных 0 среди a, b, c.

2.Найти сумму чисел кратных 3 из x, y, z.

3.Известно, что из четырех чисел а1, а2, а3, а4 два равны между собой. Вывести два другие числа.

4.Определить значение s, при условиях: s=max(x,y), x<0 ; s=min(x,y), x>=0.

5.Найти значение выражения z=|3x-4|, -100<x<0 и z=x-sqr(x), 0<x<=100.

©ИМПИ ОГПУ

6.Написать программу, запрашивающую возраст человека и в зависимости от результата выдает данные о том совершеннолетний ли пользователь.

Лабораторная работа 3. Оператор варианта.

Оператор варианта Case является обобщением оператора if и позволяет сделать выбор из произвольного числа вариантов.

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

Формат:

Case <выражение-селектор> of <список 1>: <оператор 1>; <список 2>: <оператор 2>;

<список N>: <оператор N> else <оператор>

end;

Задания для самостоятельной работы

Вариант 1.

1.Составить программу, которая по заданному числу (1-12) выводит название соответствующего месяца.

2.Составить программу, которая для введенных чисел из диапазона 1..100 печатает грамматически верно фразу «На крыше k кошек». Например, k=4 «На крыше 4 кошки», k=10 «На крыше 10 кошек».

Вариант 2.

1.Написать программу, которая по введенному номеру времени года выдавала соответствующие этому времени года месяцы и число дней в каждом месяце.

2.Составить программу, которая для введенных чисел из диапазона 1..100 печатает грамматически верно фразу «Я могу доказать k теорем». Например, k=4 «Я могу доказать 4 теоремы», k=10 «Я могу доказать 10 теорем».

Вариант 3.

1.Составить программу, которая по заданному числу (1-10) выводит ее название на иностранном языке.

©ИМПИ ОГПУ

2.Составить программу, которая для введенных чисел из диапазона 1..100 печатает грамматически верно фразу «Я нашел k грибов». Например, k=4 «Я нашел 4 гриба», k=10 «Я нашел 10 грибов».

Вариант 4.

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

2.Составить программу, которая для введенных чисел из диапазона 1..100 печатает грамматически верно фразу «Я прочитал k книг». Например, k=4 «Я причитал 4 книги», k=10 «Я прочитал 10 книг».

Лабораторная работа 4. Строки. Операторы цикла.

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

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

1.Функция length (s) определяет длину строки. Результат - целое число 0..255. Пример: дана строка, подсчитать количество цифр в строке.

var s : string; k : integer;

k := length(s);

2.Процедура Delete (s,pos,n) - удаление части строки. Удаляет из строки s n-символов начиная с символа № pos.

Пример: s := 'рогатка'; Delete(s,5,3); получим ‘рога’. 3. Процедура Insert (s1,s2,pos). Вставка части строки.

S1-что, S2-куда, Pos-с какой позиции.

Пример: S1 := 'свет'; Insert(s1,'o',2); получим 'совет'.

4.Функция s1 := Copy (s,pos,n) - возвращает часть строки s длиной n, начиная с позиции pos.

Пример: S := 'пароход'; t := copy(s,1,3); получим 'пар'.

5. Сцепление строк - функция Concat (s1,s2,s3,…,sn).

© ИМПИ ОГПУ

Пример: s := Concat ('к','о','т'); получим 'кот'.

6.Функция Pos (s1,s2) - поиск одной строки в другой. Возвращает номер символа, начиная с которого строка s1 является частью s2.

Пример: k := pos ('cd','abcdf'); получим 3, где k – целое число.

Программирование численных циклических алгоритмов. Циклы «до» и «пока»

Как уже говорилось, известны три типа циклических алгоритмических структур. Была рассмотрена только одна из них — цикл с параметром. Поговорим об остальных:

цикл с предусловием,

цикл с постусловием.

Существуют операторы для их реализации.

1. Цикл с предусловием (цикл-«пока») — наиболее универсальная циклическая структура. Реализуется оператором While. Формат оператора:

While <логическое выражение> do <тело цикла>

Пока значение логического выражения истинно (true), выполняется тело цикла, тело может быть простым или составным оператором.

2. Цикл с постусловием (цикл-«до») имеет формат

Repeat < тело цикла > until < логическое выражение >

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

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

Break – реализует немедленный выход из цикла.

Continue – обеспечивает досрочное завершение очередного прохода цикла.

Задания для самостоятельной работы

Вариант 1.

1.Дана строка s: Найти количество вхождений букв a, c, d в строку.

©ИМПИ ОГПУ

2.Заменить цифры в строке звездочками.

3.Проверить одинаковое ли число открытых и закрытых скобок в строке.

4.Вывести таблицу умножения на любое число, введенное с клавиатуры.

5.Вычислить произведение чисел кратных 5 ряда от 1 до n.

6.Вычислить сумму чисел s=(1+3+5+…+2*n-1)3-(2+4+6+…+2*n)2.

Вариант 2.

1.Дана строка s. Найти количество вхождений знаков препинания в строку.

2.Вырезать гласные буквы из строки.

3.Удалить каждую четную букву в строке.

4.Вывести таблицу значений функции y=sin(x) в интервале 0..1.

5.Вычислить сумму чисел s=1/(p+2)+2/(p+2)+3/(p+2)+…+p/(p+2).

6.Составить программу для проверки утверждения: «Результатами вычислений по формуле х2+х+17 при 0≤х≤15 являются простые числа». Все результаты вывести на экран (простое число – число которое делится только на себя и на единицу).

Вариант 3.

1.Дана строка s. Найти количество вхождений гласных букв.

2.Заменить цифры на символ «+» в строке.

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

4.В интервале [0,20] подсчитать количество четных чисел и чисел, которые делятся на 3.

5.Вычислить сумму ряда s=1-2+3-4+…-2*n+2*(n-1).

6.Покупатель должен заплатить в кассу s рублей. У него имеются 1, 2, 5, 10, 50, 100, 500, 1000-рублевые купюры. Сколько купюр разного достоинства отдаст покупатель, если он начнет платить с самых крупных? (использовать процедуру Continue).

Вариант 4.

1.Найти количество слов, начинающихся на букву с.

2.Из данной строки выбрать цифры и сформировать из них новую строку.

3.Подсчитать количество слов в строке.

4.Вывести таблицу значений функции y=cos(x) в интервале -π.. π.

5.Вычислить сумму натурального ряда чисел от 1 до n.

6.Вычислить сумму чисел s=(1+3+5+…+2*n-1)3-(2+4+6+…+2*n)2.

Лабораторная работа 5. Подпрограммы

Подпрограмма – программа, реализующая вспомогательный алгоритм. Основная программа – программа, реализующая основной алгоритм решения задачи и содержит в себе обращения к подпрограммам. В Паскале существует два типа подпрограмм: процедуры и функции. Используемые в программе нестандартные подпрограммы должны быть описаны в разделе описания подпрограмм.

© ИМПИ ОГПУ

Program <имя>; {объявление данных}

Procedure и Function {процедуры и функции}

Begin

{тело программы}

End.

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

Procedure <имя> (<параметры>);

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

begin

{тело процедуры} end;

Функции описываются следующим образом:

Function <имя> (<параметры-аргументы>): <тип функции>; {описание локальных переменных, использующихся только в

данной функции} begin

{тело функции} end;

Задания для самостоятельной работы

Задание 1.

Описать и использовать следующие процедуры:

сложения двух векторов

Procedure SumVectors(x1,x2,y1,y2:byte; var z1,z2: byte);

умножения вектора на число;

Procedure Mult(x1,x2,k:byte; var z1,z2: byte);

функцию скалярного произведения двух векторов;

Procedure MultVectors(x1,x2,y1,y2:byte; var z: byte);

ввода вектора;

Procedure In_Vectors(var x1,x2: byte);

© ИМПИ ОГПУ

вывода вектора на печать.

Procedure Out_Vectors(x1,x2: byte);

Для заданных векторов плоскости a, b, c, d вычислить значения выражения:

Вариант 1.

5a-3b+(c*d)*a;

Вариант 2.

–4c-2(a+d)-(d*a)*b;

Вариант 3.

(c*b)*a-3d-7c;

Вариант 4.

a*((a+c)*(b-d));

Задание 2.

Вариант 1.

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

Вариант 2.

Решить задачу, используя функцию. Найти количество отрицательных из 3 чисел.

Вариант 3.

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

y=x2, при 0<x<1 и y=x3, при x>1

Вариант 4.

Даны произвольные числа a, b, c. Определить используя процедуру, можно ли построить треугольник с длинами сторон, равными этим числам.

Задание 3.

© ИМПИ ОГПУ