- •Информатика Методические указания для самостоятельной работы студентов очной формы обучения по выполнению индивидуальных заданий
- •Содержание
- •Введение
- •Индивидуальная работа № 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
Алгоритм сортировки массива:
1. Сравним между собой первый и второй элементы массива и переставим их (если это необходимо) в порядке возрастания. Затем то же самое проделаем со вторым и третьим элементами и т.д. до конца массива. В результате этих сравнений и перестановок наименьшее число окажется первым.
2. Второй этап сравнений и перестановок будет проходить для (N−1) элементов (N − количество элементов массива), начиная со второго до N. В этом случае второй элемент окажется наименьшим. Уменьшая каждый раз количество элементов на 1, операции сравнения и перестановок закончим тогда, когда останется один элемент массива.
Переменная M является в качестве подсобной для перестановки элементов.
Задача 7. В массиве Х(8) подсчитайте сумму элементов, стоящих на чётных местах.
Обозначения: S − сумма элементов, стоящих на чётных местах; i − переменная цикла с предусловием.
Program Massiv7; Var i,s: integer; X: array[1..8] of integer; begin for i:=1 to 8 do readln (X[i]); {Присвоение начальных значений сумме и переменной} S:=0; i:=2; {Организация цикла с предусловием} While i<=8 do begin {Вычисление суммы и переход на следующее чётное место} S:=S+X[i]; i:=i+2; end; {Вывод результатов вычисления на экран} writeln ('S=',S); readln; end. |
Задание 7. Обработка двумерных массивов
Двумерный массив – это структура данных, хранящая прямоугольную матрицу. В матрице каждый элемент определяется номером строки и номером столбца, на пересечении которых он расположен.
Например, D(3×4) – двумерный массив, состоящий из 3 строк и 4 столбцов.
Общий вид записи:
где Dij – элементы массива; i – индекс строки; j – индекс столбца. |
Запись элементов двумерного массива на языке Паскаль D[i,j].
Общий вид записи описания двумерного массива:
Var «Имя массива»: array[n1..n2, m1..m2] of «Тип элементов»;
n1 − номер первой строки; n2 − номер последней строки; |
m1 – номер первого столбца; m2 – номер последнего столбца. |
array, of – зарезервированные слова («массив», «из»).
Задача 1. Найдите максимальный элемент в каждой строке матрицы A(4×3).
|
Обозначения: MAX – максимальный элемент матрицы. Program Matriza1; Var i, j, MAX: integer; А:array[1..4,1..3] of integer; begin {Организация ввода матрицы с клавиатуры построчно} for i:=1 to 4 do for j:=1 to 3 do readln (A[i, j]); {Организация цикла для поиска максимального элемента в каждой строке} for i:=1 to 4 do begin {Присвоение начального значения максимальному элементу текущей строки} MAX:=a[i,1]; for j:=2 to 3 do if a[i,j]>MAX then MAX:=a[i,j]; {Вывод результатов вычисления на экран} writeln ('Макс.элемент в', i, 'строке=', MAX); end; readln; end. |
Задача 2. В матрице D(3×3) найдите произведение элементов каждого столбца.
|
Обозначения: P – произведение элементов каждого столбца.
Program Matriza2; Var {Описание переменных матрицы} i, j, p: integer; {Описание матрицы D} D: array[1..3,1..3] of integer; Begin {Организация ввода матрицы с клавиатуры построчно} for i: =1 to 3 do for j : = 1 to 3 do readln (D[i, j]); {Организация цикла для вычисления произведения элементов каждого столбца} for j:=1 to 3 do begin {Присвоение начального значения произведению} P:=1; for i:=1 to 3 do p:=p*D[i,j]; {Вывод результатов вычисления на экран} writeln ('P=',P); end; readln; end.
|
Задача 3. В матрице С(5×5) элементы, лежащие выше главной диагонали, уменьшите на сумму элементов главной диагонали.
|
Обозначения: Элементы, лежащие на главной диагонали, имеют одинаковые индексы (i=j). S – сумма элементов главной диагонали. Для ввода данных используется функция Random (50) – датчик случайных чисел в диапазоне [0;49]. Program Matriza3; Var i, j, s: integer; C: array[1..5,1..5] of integer; begin {Запуск генератора случайных чисел} Randomize; Writeln ('Данная матрица'); For i:=1 to 5 do begin For j:=1 to 5 do begin C[i, j]:=Random(50); Write (' ',C[i, j]:4); End; Writeln; End; {Присвоение начального значения сумме} S:=0; {Вычисление суммы элементов главной диагонали матрицы} For i:=1 to 5 do S:=S+C[i, i]; Writeln ('S=',S); Writeln ('Новая матрица'); {Организация цикла для уменьшения элементов матрицы, лежащих выше главной диагонали на сумму} For i:=1 to 5 do begin For j:=1 to 5 do begin If i<j then C[i, j]:= C[i, j]-S; {Вывод новой матрицы на экран} Write (' ',C[i, j]:4); end; Writeln; End; Readln; End. |
Задача 4. В матрице В(3×3) все элементы, лежащие на главной диагонали, замените на 0.
|
Данные задаются типизированной константой, значения элементов массива выбираются произвольно
Элементы, лежащие на главной диагонали, имеют одинаковые индексы (i=j). Program Matriza4; Var i, j: integer; {Описание матрицы В с помощью типизированной константы} const B: array[1..3,1..3] of integer= ((1,-3,2), (5,-4,-2), (-1,5,8)); begin {Организация цикла для замены элементов главной диагонали матрицы на 0} for i:=1 to 3 do for j:=1 to 3 do if i=j then B[i, j]:=0 {Вывод новой матрицы на экран} for i:=1 to 3 do begin for j:=1 to 3 do write (B[i, j]:5); writeln; end; readln; end. |
Задача 5.В матрице А(4×4) определите в каждом столбце количество отрицательных элементов.
Обозначения: k – количество отрицательных элементов. Program Matriza5; Var i, j, k: integer; A: array[1..4,1..4] of integer; begin for i : = 1 to 4 do for j : = 1 to 4 do readln (А[i, j]); {Организация цикла для подсчёта количества отрицательных элементов в каждом столбце} for j:=1 to 4 do begin {Присвоение начального значения количеству элементов} k:=0; for i:=1 to 4 do if A[i,j]<0 then k:=k+1; {Вывод результатов вычисления на экран} writeln ('В столбце №',j, 'кол-во отриц.элементов- ',k); end; readln; end.
|
Задача 6.Выполните транспонирование матрицы Х(3×3) (замените строки столбцами).
Обозначения: Yij – элементы полученной матрицы после транспонирования. Program Matriza6; Var i, j: integer; Y: array[1..3,1..3] of integer; X: array[1..3,1..3] of integer; begin {Организация ввода матрицы X с клавиатуры} for i:=1 to 3 do for j:=1 to 3 do readln (X[i, j]); {Организация цикла для замены строк столбцами матрицы} for i:=1 to 3 do for j:=1 to 3 do Y[j,i]:=X[i,j]; {Вывод новой матрицы Y на экран} for i:=1 to 3 do begin for j:=1 to 3 do write (Y[i,j]:5); writeln; end; readln; end.
|
Задача 7. Определите произведение элементов четных столбцов матрицы В(3×4).
Обозначения: Р – произведение элементов.
Program Matriza7; Var Р, i, j: integer; B: array[1..3,1..4] of integer; begin for i : = 1 to 3 do for j : = 1 to 4 do readln (B[i, j]); j:=2; {Организация цикла с предусловием} while j<=4 do begin {Присвоение начального значения произведению} P:=1; {Вычисление произведения} for i:=1 to 3 do Р:=Р*В[i,j]; {Вывод результатов вычисления на экран} writeln ('Р=',Р); {Переход на следующий чётный столбец} j:=j+2; end; readln; end.
|
Задача 8. В каждой строке матрицы А(3×3) определите сумму положительных элементов.
Обозначения: S – сумма положительных элементов.
Program Matriza8; Var s, i, j: integer; A: array[1..3,1..3] of integer; begin for i : = 1 to 3 do for j : = 1 to 3 do readln (А[i, j]); {Организация цикла для вычисления суммы положительных элементов матрицы в каждой строке} for i:=1 to 3 do begin {Присвоение начального значения сумме} S:=0; for j:=1 to 3 do if A[i,j]>0 then S:=S+A[i,j]; {Вывод результатов вычисления на экран} writeln ('Сумма ',i,' строки=',S); end; readln; end.
|