- •Информатика Методические указания для самостоятельной работы студентов очной формы обучения по выполнению индивидуальных заданий
- •Содержание
- •Введение
- •Индивидуальная работа № 1 Задание 1. Системы счисления (сс)
- •Задание 2. Кодирование и единицы измерения информации
- •Индивидуальная работа № 2 Задание 1. Запись математических выражений на алгоритмическом языке
- •Задание 2. Запись арифметических выражений в математической форме
- •Задание 3. Циклические вычислительные процессы. Вычисление значений функции при различных значениях аргумента (табулирование функции)
- •Задание 4. Циклические вычислительные процессы. Решение задач, содержащих вычисление конечных сумм и произведений
- •Задание 5. Разветвление в цикле
- •Задание 6. Обработка одномерных массивов
- •Задание 7. Обработка двумерных массивов
- •Методические рекомендации по выполнению индивидуальных заданий индивидуальная работа № 1 Задание 1. Системы счисления
- •Правила перевода десятичных чисел в другие системы счисления
- •Задание 2. Кодирование и единицы измерения информации
- •1) Иванов иван иванович
- •Индивидуальная работа № 2 Графический способ представления алгоритма
- •Интегрированная среда отладки и создания программ на языке программирования Turbo Pascal
- •Основные символы
- •Типы данных
- •Ввод и вывод данных
- •Задание 1. Запись математических выражений на алгоритмическом языке
- •Задание 2. Запись арифметических выражений в математической форме
- •Задание 3. Циклические вычислительные процессы. Вычисление значений функции при различных значениях аргумента (табулирование функции)
- •1 Способ: Цикл с использованием операторов условного (if) и безусловного переходов (goto)
- •2 Способ: Организация цикла с предусловием (while) Общий вид алгоритма цикла с предусловием
- •3Способ: Организация цикла с постусловием (repeat…until) Общий вид алгоритма цикла с постусловием
- •4 Способ: Организация цикла с параметром (for) Общий вид алгоритма цикла с параметром
- •Задание 4. Циклические вычислительные процессы. Решение задач, содержащих вычисление конечных сумм и произведений
- •Алгоритм сортировки массива:
- •Задание 7. Обработка двумерных массивов
- •Наиболее распространенные сообщения об ошибках
- •Контрольные вопросы по теме «Алгоритмизация и программирование»
- •Список использованной литературы
- •Информатика Методические указания для самостоятельной работы студентов очной формы обучения по выполнению индивидуальных заданий
- •426069, Г. Ижевск, ул. Студенческая, 11
3Способ: Организация цикла с постусловием (repeat…until) Общий вид алгоритма цикла с постусловием
Выполняется до тех пор, пока логическое выражение ложно. Условие нужно задать так, чтобы выйти из цикла.
Общий вид записи:
Repeat
«Тело цикла»;
until «Условие окончания цикла»;
«Тело цикла» − произвольная последовательность операторов;
«Условие» − выражение логического типа.
Процесс завершается тогда, когда после очередного выполнения заданной последовательности операторов тела цикла условие примет (впервые) значение истина. Проверка условия производится после выполнения тела цикла.
Repeat …until − зарезервированные слова («Повторять», «пока не [выполнится условие]»).
|
Program Name3; Var X, А: integer; Y: real; Begin A:=5; X:=1; repeat Y:=X*X+sin(X+A); Writeln ('X=',X,'; Y=',Y:4:1); X:=X+2; until X>10; readln; end.
|
4 Способ: Организация цикла с параметром (for) Общий вид алгоритма цикла с параметром
Предписывает выполнять тело цикла для всех значений некоторой переменной (параметра цикла) в заданном диапазоне между начальным и конечным значениями. Используется в том случае, если параметр цикла имеет целочисленный тип и значение параметра увеличивается (уменьшается) на 1.
|
i – параметр цикла i1 – начальное значение, i2 – конечное значение |
Общий вид записи:
for «Параметр цикла»:=«Начальное значение» to (downto) «Конечное значение» do
«Тело цикла»;
В качестве параметра цикла можно использовать имя простой переменной целого типа, в качестве начального, конечного значений можно использовать константы, переменные, а также арифметические выражения только целого или перечислимого типа.
for, to, downto, do – зарезервированные слова («для», «до», «уменьшить до», «выполнить»).
Порядок выполнения действий:
До разработки алгоритма решения задачи необходимо вычислить количество повторений цикла К.
К – в данной программе будет означать конечное значение цикла.
1) Присвоение значения переменной А.
2) Присвоение переменной К значения, полученного до разработки алгоритма решения задачи.
3) Присвоение значения 1 переменной Х (начальное значение).
4) Организация цикла с параметром по переменной i (целое число).
5) Вычисление значения функции Y.
6) Вывод значения функции Y.
7) Добавление шага к переменной Х.
|
Program Name4; Var X, А, К i: integer; Y: real; Begin A:=5; K:=5; X:=1; for i:=1 to K do begin Y:=X*X+sin(X+A); Writeln ('X=',X, ';Y=',Y:4:1); X:=X+2; end; readln; end.
|
Задание 4. Циклические вычислительные процессы. Решение задач, содержащих вычисление конечных сумм и произведений
Условие задачи:
Вычислите конечное значение суммы функции
Для решения задачи использовать разные способы организации цикла:
1) Цикл с предусловием (WHILE);
2) Цикл с постусловием (REPEAT…UNTIL);
3) Цикл с параметром (FOR) со счётчиком (с шагом 1).
Пояснение:
1 способ: Цикл с предусловием (WHILE)
Обозначения:
А – вспомогательная переменная, в которой вычисляется слагаемое;
S – переменная, в которой происходит накапливание значений сумм.
Первое значение переменной S=0.
|
Program Summa1; Var X: integer; S, A: real; Begin X:=1; S:=0; While X<=20 do begin A:=1/(X*X); S:=S+A; X:=X+1; end; Writeln ('S=', S:4:2); readln; End.
|
2 способ: Цикл с постусловием (REPEAT…UNTIL)
|
Program Summa2; Var X: integer; S, A: real; Begin X:=1; S:=0; repeat A:=1/(X*X); S:=S+A; X:=X+1; until Х>20; Writeln ('S=', S:4:2); readln; End.
|
3 способ: Цикл с параметром (FOR) со счётчиком (с шагом 1)
|
Program Summa3; Var X: integer; S, A: real; Begin S:=0; for X:=1 to 20 do begin A:=1/(X*X); S:=S+A; end; Writeln ('S=', S:4:2); readln; End.
|
Условие задачи:
Вычислите конечное значение произведения функции
Пояснение:
1способ: Цикл с предусловием (WHILE)
Обозначения:
А – вспомогательная переменная, в которой вычисляется множитель;
P – переменная, в которой происходит накапливание значений произведения.
Первое значение переменной P=1.
|
Program Summa1; Var N: integer; P, A: real; Begin N:=1; P:=1; While N<=10 do begin A:=N*N/(3+N); P:=P*A; N:=N+1; end; Writeln ('P=', P:4:2); readln; End.
|
Остальные способы аналогично вычислению конечной суммы.
Задание 5. Разветвление в цикле
Разветвление в цикле означает, что тело цикла содержит разветвляющийся процесс.
Разветвляющийся процесс – это процесс, в котором вычисления могут выполняться разными путями в зависимости от выполнения или невыполнения некоторых условий. Обеспечивает в зависимости от результата проверки условия (да или нет) выбор одного из альтернативных путей работы алгоритма. Каждый из путей ведет к общему выходу, так что работа алгоритма будет продолжаться независимо от того, какой путь будет выбран.
Общий вид алгоритма разветвляющегося процесса
Общий вид записи с условным оператором:
If «Условие» then «Оператор_1» else «Оператор_2»;
«Условие» − логическое выражение.
if, then, else − зарезервированные слова («если», «то», «иначе»).
Условие задачи:
Найдите значения функции ,
если |
|
Порядок выполнения действий:
1. Присвоение значений переменным A и B.
2. Организация цикла по переменной Х.
3. Вычисление функции D в зависимости от условия.
4. Вычисление значений функции F.
5. Вывод значения функции F.
1 способ: Цикл с предусловием (WHILE)
|
Program funk_F1; Var а, b, d, x, F: real; begin a:= 2.7; b:= -0.3; x:=1; While x<=8 do begin if x<2.3 then d:=(a+x)/x else if x>=5 then d:=a*x*x+b*x else d:=(a+b)/(x+1); F:=b*d+ln(d); writeln('F(',x:2:1, ')= ',F:6:2); x:=x+0.5; end; readln; end. |
2 способ: Цикл с постусловием (REPEAT…UNTIL)
|
Program funk_F2; var a, b, d, x, F:real; begin a:= 2.7; b:=-0.3; x:=1; repeat if x<2.3 then d:=(a+x)/x else if x>=5 then d:=a*x*x+b*x else d:=(a+b)/(x+1); F:=b*d+ln(d); Writeln ('F(',x:2:1, ')= ',F:6:2); x:=x+0.5; until x>8; readln; end. |
Задание 6. Обработка одномерных массивов
Одномерный массив − это фиксированное количество элементов одного и того же типа, объединенных одним именем, где каждый элемент имеет свой номер.
Например, A(8) – одномерный массив, где А – имя массива, 8 – количество элементов.
Общий вид записи:
А1, А2 , А3……., Аn – это одномерный массив,
где Аi – элементы массива, i=1, 2, 3……n – индекс представляет собой переменную целого типа. Запись элемента массива на языке Паскаль А[i].
Общий вид записи описания одномерного массива:
Var «Имя массива»: Array[n1..n2] Of «Тип элементов»;
n1 − номер первого элемента;
n2 − номер последнего элемента.
Array, of – зарезервированные слова («массив», «из»).
Задача 1. В массиве X(15) вычислите максимальный элемент массива и его порядковый номер.
Обозначения: MAX – максимальный элемент массива; K – порядковый номер максимального элемента массива. Program Massiv1; Var {Описание используемых переменных} K, i, MAX: integer; {Описание массива X} X: array [1..15] of integer; begin {Организация цикла для ввода элементов массива с клавиатуры} for i:=1 to 15 do readln (X[i]); {Присвоение начальных значений максимальному элементу и его порядковому номеру} MAX:=X[1]; K:=1; {Организация цикла для поиска максимального элемента массива и его порядкового номера} for i:=2 to 15 do if X[i]>MAX then begin MAX:=X[i]; K:=i; end; {Вывод результатов вычисления на экран} writeln ('MAX=', MAX:2, ';K=', K); readln; end. |
Задача 2. В массиве R(8) найдите минимальный элемент и замените его на 5.
|
Обозначения: MIN – минимальный элемент массива; N – порядковый номер минимального элемента.
Program Massiv2; Var R: array[1..8] of integer; i, n, MIN: integer; begin for i:=1 to 8 do readln (R[i]); {Присвоение начальных значений минимальному элементу и его порядковому номеру} MIN:= R[1]; n:=1; {Организация цикла для поиска минимального элемента массива и его порядкового номера} for i:=2 to 9 do if R[i]<MIN then begin MIN:= R[i]; n:=i; end; {Вывод результатов вычисления на экран} writeln ('MIN=',MIN); {Замена минимального элемента массива на 5} R[n]:=5; {Вывод нового массива на экран} for i:=1 to 8 do write (R[i]:5); readln; end.
|
Задача 3. В массиве А(8) определите количество положительных и отрицательных элементов.
|
Обозначения: p – количество положительных элементов; ot – количество отрицательных элементов.
Program Massiv3; Var p, ot, i: integer; a: array[1..8] of integer; begin writeln ('Введите элементы массива А'); for i:=1 to 8 do readln (А[i]); {Присвоение начальных значений количеству положительных и отрицательных элементов} p:=0; ot:=0; {Организация цикла для подсчёта количества положительных и отрицательных элементов массива} for i:=1 to 8 do if А[i]>0 then p:=p+1 else ot:=ot+1; {Вывод результатов вычисления на экран} writeln ('Количество положительных элементов=', p:2); writeln ('Количество отрицательных элементов=', ot:2); readln; end.
|
Задача 4. В массиве X(15) вычислите сумму элементов массива меньших 10 и произведение элементов массива больших нуля.
Обозначения: S – сумма элементов массива, меньших 10; P – произведение элементов массива, больших нуля.
Program Massiv4; Var i, S, P: integer; X: array [1..15] of integer; begin for i:=1 to 15 do readln (X[i]); {Присвоение начальных значений сумме и произведению} S:=0; P:=1; {Организация цикла для вычисления суммы и произведения элементов массива} for i:=1 to 15 do begin if X[i]<10 then S:=S+X[i]; if X[i]>0 then P:=P*X[i]; end; {Вывод результатов вычисления на экран} writeln ('S=', S); writeln ('P=', P); readln; end.
|
Задача 5. В массиве D(15) найдите все положительные элементы и замените их на среднее арифметическое отрицательных элементов.
Обозначения: S – сумма отрицательных элементов массива; SA – среднее арифметическое отрицательных элементов массива; K – количество отрицательных элементов массива.
Program Massiv5; Var K, I: integer; S, SA: real; D: array [1..15] of real; Begin write ('Введите элементы массива D'); for i:=1 to 15 do readln (D[i]); {Присвоение начальных значений сумме и количеству элементов} S:=0; K:=0; {Организация цикла для вычисления суммы и количества отрицательных элементов массива} for i:=1 to 15 do if D[i]<0 then begin S:=S+D[i]; K:=K+1; end; {Вычисление среднего арифметического элементов массива} SA:=S/K; {Вывод среднего арифметического элементов массива на экран} writeln ('SA=',SA:7:2); writeln ('Вывод нового массива D'); {Организация цикла для определения положительных элементов массива и замена их на среднее арифметическое и вывод нового массива на экран} for i:=1 to 15 do begin if D[i]>0 then D[i]:=SA; writeln ('D(',i, ')= ', D[i]:5:2); end; readln; end. |
Задача 6. В массиве С(7) отсортируйте все элементы по возрастанию.
|
Обозначения: m – вспомогательная переменная для перестановки элементов массива.
Данные массива задаются типизированной константой, значения элементов массива выбираются произвольно
Program Massiv6; Var k, i, M: integer; {Описание массива С с помощью типизированной константы} const c: array[1..7] of integer = (5,-4,2,7,-1,88,9); begin {Сортировка массива} for k:=1 to 7 do for i:=k+1 to 7 do if c[i]<=c[k] then begin M:=c[i]; c[i]:=c[k]; c[k]:=M; end; {Вывод нового массива на экран} for i:=1 to 7 do writeln ('c[',i,']=',c[i]:2); readln; end.
|