Добавлен: 25.10.2018
Просмотров: 1341
Скачиваний: 7
Пояснительная записка
Настоящие методические указания содержат рекомендации по изучению отдельных разделов дисциплины, задания для домашней контрольной работы и решение типовых примеров, охватывающие следующие темы:
-
Методы программирования;
-
Структуры данных;
-
Программирование в среде Turbo-Pascal.
-
Программирование в обьектно-ориентированной среде Visual Basic.
.
Задания сгруппированы по темам, по каждой теме приведено решение типовых примеров с объяснениями основных положений решения.
Основой для КР является работа с рекомендованной учебной литературой, а также осуществлять поиск информации в Internet.
Все задания подробно решаются в специальной тетради; вычисления должны быть расположены в строгом порядке. Чертежи можно выполнять от руки, но аккуратно.
Перед выполнением решения должно быть приведено полное описание условия задания, описание выбранного метода решения задачи (основные формулы и теоремы).
Решение каждого задания должно доводиться до окончательного ответа, который требуется по условию, а при необходимости могут быть сделаны выводы по результатам проделанной работы.
Одно из направлений домашней контрольной работы студентов связано с правильным выбором и постоянным использованием:
-
конспекта по дисциплине;
-
справочной литературой по дисциплине;
-
электронных справочников и системы поиска по ключевым словам в Internet.
Рабочая программа дисциплины «Основы программирования» предполагают выполнение самостоятельной работы студента, в данном случае – это самостоятельное решение набора индивидуальных задач, закрепляющих освоение студентами основным разделов, тем дисциплины.
КОНТРОЛЬНАЯ РАБОТА № 1
Раздел 2 Программирование в среде Turbo-Pascal
Вид КР: Выполнение индивидуальных заданий к практическим работам с использованием дополнительной литературы по соответствующей теме.
Цель: совершенствование практических навыков в области создания программ в среде программирования Turbo-Pascal.
Дидактические единицы, выносимые на самостоятельное изучение студентов.
использование оператора вывода по формату, создание программ разветвляющейся структуры, использование цикла с предварительным условием, использование цикла с параметром, использование вложенных циклов, использование массивов, использование записей, использование процедур, использование строковых данных.
Задание № 1
Краткие сведения из теории
Условный оператор.
Вычислительный процесс называется разветвляющимся, если в зависимости от выполнения определенных условий он реализуется по одному из нескольких заранее предусмотренных направлений.
Каждое определенное направление называется ветвью вычислений. Выбор той или иной ветви осуществляется в результате проверки условий и определяется свойствами исходных данных и промежуточных результатов.
При составлении программы должны быть учтены все возможные ветви вычислений.
Для реализации таких вычислений в языке имеются специальные операторы передачи управления. Если такой переход осуществляется при выполнении какого-либо условия, то он называется условным.
-
Полная форма оператора
IF логическое выражение THEN оператор 1 ELSE оператор 2
IF – если
THEN – тогда
ELSE – иначе
Оператор 1 или оператор 2 – это простые или составные операторы.
Если логическое выражение истинно, то выполняется оператор 1, если оно ложно, то выполняется оператор 2.
-
Короткая форма оператора
IF логическое выражение THEN оператор
-
Условный оператор состоящий из составных
IF логическое выражение THEN
BEGIN
Оператор 1;
Оператор 2;
END;
ELSE
BEGIN
Оператор 1;
Оператор 2;
END.
Пример : Написать программу вычисления х, предварительно составив алгоритм.
PROGRAM TNL (INPET; OUTPUT);
VAR A,B,C,D:REAL;
X:INTEGER;
BEGIN
WRITELN (‘Введите значения A,B,C,D’);
READ (A,B,C,D);
IF A=B THEN
IF C<D THEN
X:=1
ELSE
X:=2
ELSE
X:=3
WRITELN (‘Значение х =’, х:8:3);
END.
Задания для контрольной работы.
Задание № 1
Составить программу для вычисления на ПК значений переменных. Вывести на экран значения исходных данных и результатов промежуточных и окончательных вычислений, сопровождая вывод именами переменных.
Вариант 1
y = ctg x + , где
Вариант 2
Вариант З
у = x2 +b-sin b, где
Вариант 4
Вариант 5
Вариант 6
Вариант 7
Вариант 8
Вариант 9
Вариант 10
Задание № 2
Краткие сведения из теории
Арифметические операции (выражения).
С данными целого и действительного типа можно выполнять арифметические действия.
Стандартные арифметические функции.
-
Запись на Паскале
Запись на математическом языке
ABS (x)
|х|
SQR (x)
х2
SQRT (x)
SIN (x)
Sin x
COS (x)
Cos x
ARCTAN (x)
Arctg x
EXP (x)
ex
LN (x)
Lg x (натуральный)
LOG (x)
Lg x (десятичный)
INT (x)
Целая часть от х
FRAC (x)
Дробная часть х
ODP (x)
Проверяется является ли х нечетным
PRED (x)
Предыдущее значение х
SUCC (x)
Последующее значение х
EXP (A*LN(x))
Ха
DIV
Деление с отбрасыванием дробной части
MOD
Анализ дробного остатка
Правила записи стандартных функций:
-
Имя функции записывается латинскими буквами.
-
Аргумент функции записывается в скобках.
-
Аргумент функции может быть const, переменной или арифметическим выражением.
Арифметические выражения состоят из арифметических констант, переменных, функций и операций над ними.
Все данные, входящие в арифметическое выражение должны быть одного типа. Иногда возможно сочетание INTEGER и REAL.
Правила записи арифметических операций:
-
Все составные части выражения записываются в одну строку.
-
Используются только круглые скобки (сколько открывающихся, столько и закрывающихся).
-
Нельзя записывать подряд два знака арифметических операций.
-
Вычисление выполняются слева направо в соответствии со старшинством операций.
Старшинство операций:
-
Стандартные функции
-
Умножение*, деление /
-
Сложение +, вычитание –
Выражение в скобках всегда вычисляются в первую очередь.
Пример:
Записать арифметические выражения по правилам Паскаля:
Y:= SQRT (ABS (-A*X+C))/LN(ABS(X+C*C))
Y:= EXP(1/3*LN(A*X))
Y:= SQR(a+b)+a*cos(a+b) +a*SQRT(b)/(a+b)
Y:= LN(ARCCT(x)-SIN(a*b))+EXP(5*LN(a*x)).
Задания для контрольной работы.
Задание № 2
Написать значение выражения на языке Pascal для вводимых с клавиатуры А, В и С.
Вариант 1
Вариант 2
Вариант 3
Вариант 4
Вариант 5
Вариант 6
Вариант 7
Вариант 8
Вариант 9
Вариант 10
Задание № 3
Краткие сведения из теории
Организация циклических процессов.
Циклом (в программировании) называется повторение одних и тех же действий (шагов), последовательность действий, которые повторяются в цикле называются телом цикла.
Виды операторов цикла:
- с предварительным условием (WHILE)
- с последующим условием (REPEAT)
- с параметром (FOR)
Особенности, характерные для всех видов оператора цикла.
-
Повторяющаяся часть записывается только 1 раз.
-
Вход в цикл возможен через его начало.
-
Переменные оператора цикла должны быть определены до входа в цикл.
-
Должен быть предусмотрен выход из цикла.
-
WHILE
WHILE логические условия DO
Операторы
тела цикла
END.
WHILE - пока
DO – выполнить
Действия оператора:
Предварительно проверяется значение логического выражения (условия). Пока это условие истинно, выполняются операторы циклической части.
Как только выражение становится ложным, происходит выход из цикла.
WHILE логические условия DO оператор;
Оператор с постусловием.
Используется в тех случаях, когда заранее неизвестно число повторений цикла.
R
Операторы
тела цикла
VNTIL логические выражения
VNTIL – до тех пор пока
REPEAT – повторять
Операторы тела цикла выполняются, по крайней мере, 1 раз до тех пор, пока логическое выражение ложно. Как только логическое выражение TRUE, цикл прекращается.
BEGIN, END – ставить не надо.
Пример: Пусть массив А (20) это количество осадков в мм., выпадавших в г.Москве в течение 20-ти последних лет, вычислить среднее количество осадков и отклонение от среднего для каждого года.
PROGRAM OSADKI;
TYPE T=ARRAY [1…20] OF REAL;
VAR A:T;
S:REAL;
BEGIN
S:=0
FOR I:=1 TO 20 DO
BEGIN
WRITELN (‘Введите следующие элементы массива’);
READ (A [I]);
S:=S+A[I];
END;
S:=S/20
WRITELN (‘Среднее количество осадков, S’);
FOR I:=1 TO 20 DO
WRITELN (S-A[I]);
WRITELN (‘Отклонение от среднего’);
END;
END.
Задания для контрольной работы.
Задание № 3
Составить две программы (одну с операторами присваивания, перехода, условными; вторую- используя оператор цикла) для вычисления значений функции при изменении аргумента. Вывод на экран значений вводимых исходных данных и результатов вычислений оформить в виде таблицы с указанием в шапке таблицы имён аргумента и функции.
Вариант 1
где х принимает значения из интервала [-1÷1] с шагом 0,1
Вариант 2
где x принимает значения из интервала [0÷10] с шагом 0,5,
значение «b» задаётся.
Вариант 3
где х изменяется в интервале [0÷6] с шагом 0,4,
значения «u», «t»- вводятся с клавиатуры.
Вариант 4
где x принимает значения 0; 0,5; 1;... 3, значение «а»- задаётся
Вариант 5
где x изменяется в интервале [ 0,7 ; 2 ] с шагом 0,1;
а=1.65.
Вариант 6
где х изменяется в интервале [0,1÷1,7] с шагом 0,2,
а=0,9
Вариант 7
где х изменяется в интервале [2 ÷ 5] с шагом 0,25.
Вариант 8
где х изменяется в интервале [0,2÷2] с шагом 0,1; t=2,2.
Вариант 9
где х изменяется в интервале [0,2÷2] с шагом 0,1; а=20,3
Вариант 10
где x принимает значения 0; 0,5; 1;... 3, значение «а»- задаётся
Задание № 4
Краткие сведения из теории
Оператор цикла с параметром.
Используется когда заранее известно сколько раз должна повторяться циклическая часть программы
FOR I:=m1 TO m2 DO
B
Операторы
тела цикла
END.
I – параметр цикла
m1, m2 начальное и конечное значение параметра цикла.
Чаще всего параметр I используют как переменную целого типа, а шаг его изменения равен 1 или (-1).
Если шаг параметра цикла отрицательный, то вместо TO – DOWNTO
Пример: Вычислить факториал заданного числа N.
PROGRAM FA;
VAR N,I,P:INTEGER;
BTGIN
READ (N);
WRITELN (‘исходные данные N=’, N);
P:=1
FOR I:=1 TO N DO
P:=P*I
WRITE (‘N!=’, P);
END.
Задания для контрольной работы.
Задание № 4
Составить программу вычисления функции, используя разные виды операторов цикла(минимум две программы).
Вариант 1
Найти сумму ряда
Вариант 2
Найти сумму ряда
Вариант 3
Найти сумму 35 членов ряда
Вариант 4
Найти сумму 50 членов ряда
Вариант 5
Найти сумму ряда
Вариант 6
Найти сумму ряда
Вариант 7
Найти сумму ряда
Вариант 8
Найти сумму ряда
при х=0,20 с заданной точностью =10-9.
Вариант 9
Найти сумму ряда
при х=0,10 с заданной точностью = 0.5 * 10-4
Вариант 10
Найти сумму ряда, начиная с нулевого члена
при х=0,75 с заданной точностью = 10-3.
Задание № 5
Краткие сведения из теории
Массивы.
Под массивом понимается совокупность конечного числа данных одного типа.
Массив обозначается одним именем, каждый элемент массива обозначается именем массива с индексом.
Элементы массива упорядочены по значению индекса. Индекс берется в квадратные скобки.
Если в программе используется массив, то он должен быть описан, либо в разделе переменных VAR, либо в разделе типов TYPE.
VAR имя массива: ARRAY[t1] OF t2;
Это описание в секции переменных.
ARRAY – массив
OF – из
t1 - тип индекса (простой тип кроме REAL и ITEGER).
t2 – тип элементов массива допустимых в Паскале.
Описание массива через секцию TYPE:
В секции VAR используется явное описание массива, в секции TYPE используют другую форму описания.
TYPE имя типа = ARRAY[t1] OF t2;
VAR имя массива : имя типа;
Пример: Дан двумерный массив различных вещественных чисел, содержащий 5 строк и 4 столбца. Строку, содержащую максимальный элемент массива, поменять местами со строкой, содержащей минимальный элемент.
PROGRAM MAS (INPUT, OUTPUT);
TYPE MMM=ARRAY [1…4] OF REAL;
VAR M: ARRAY [1…5] OF MMM;
M1: MMM
MAX, MIN: REAL; MAX, MIN,I,J:INTEGER;
BEGIN
WRITELN (‘Введите исходный массив’);
FOR I:=1 TO 5 DO
FOR J:=1 TO 4 DO
BEGIN
IF MAX <M[I,J] THEN
BEGIN
MAX:=M[I,J];
MAX I:=I
END;
IF MIN >M[I,J] THEN
BEGIN
MIN:=M[I,J];
MIN I:=I
END;
END;
M1:=M [MAX I];
M [MAX I]:= M [MIN I];
M [MIN I]:=M1;
WRITELN (‘Введите исходный массив’);
FOR I:=1 TO 5 DO
BEGIN
FOR J:=1 TO 4 DO
WRITE (M [I,J]:5:2);
WRITELN;
END;
END.
Введите исходный массив
1.1 |
1.2 |
1.3 |
1.4 |
2.1 |
2.2 |
2.3 |
2.4 |
3.1 |
3.2 |
3.3 |
3.4 |
4.1 |
4.2 |
4.3 |
4.4 |
5.1 |
5.2 |
5.3 |
5.4 |
Массив после перестановки строк
5.10 |
5.20 |
5.30 |
5.40 |
2.10 |
2.20 |
2.30 |
2.40 |
3.10 |
3.20 |
3.30 |
3.40 |
4.10 |
4.20 |
4.30 |
4.40 |
1.10 |
1.20 |
1.30 |
1.40 |
Задания для контрольной работы.
Задание № 5
Составить программу решения задачи обработки массива.
Вариант 1
Задана матрица М{N,М). Упорядочить по возрастанию элементы каждой строки матрицы N4. 15, М4 10.
Вариант 2
Задана матрица А{N,М). Вычислить и запомнить сумму и число положительных элементов каждого столбца матрицы. Результаты получить в виде двумерного массива N≤15, М<10.
Вариант 3
Задана матрица В{N,М). Вычислить сумму и число элементов матриц, находящихся под главной диагональю и на ней N≤2.
Вариант 4
Задана матрица Р(N,N). Найти в каждой строке наибольший элемент и поменять его местами с элементами главной диагонали N≤15.
Вариант 5
Задан массив С(М) Определить минимальный элемент массива С и его номер С1 < О, М≤40.
Вариант 6
Задана матрица R(К,N). Найти наибольший и наименьший элементы матрицы и поменять их местами К<20,N≤10.
Вариант 7
Задана матрица F(N,М) Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их с первым и последним элементами строки соответственно N≤10, М≤ 15.
Вариант 8
Задан массив Z(N). Расположить в массиве R сначала положительные, а затем отрицательные элементы массива Z.
Вариант 9
В целочисленной матрице N(А, В) определить все элементы, кратные пяти. Сформировать из этих элементов одномерный массив и найти наибольший элемент этого массива А≤20, В≤ 10