Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
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 end; {Вывод нового массива на экран} for i:=1 to 7 do writeln ('c[',i,']=',c[i]:2); readln; end. |
Алгоритм сортировки массива:
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 {Организация цикла для замены элементов главной диагонали матрицы 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. |
Наиболее распространенные сообщения об ошибках
2 Identifier expected, не указан идентификатор.
3 Unknown identifier, неизвестное имя идентификатора, идентификатор не был описан.
4 Duplicate identifier, двойной идентификатор, попытка дважды описать один и тот же идентификатор.
5 Syntax error, синтаксическая ошибка, найден недопустимый символ.
8 String constant exceeds line, пропущен апостроф в конце строковой константы.
10 Unexpected end of file, отсутствует конец файла, т. е. не поставлена точка после END или вероятно в программе неодинаковое количество операторов BEGIN и END.
11 Line too long, слишком длинная строка.
12 Type identifier expected, не указан тип идентификатора.
16 Disk full, диск заполнен, необходимо удалить некоторые файлы или воспользоваться новым диском.
20 Variable identifier expected, не указан идентификатор переменной.
21 Error in type, ошибка в объявлении типа.
26 Type mismatch, несоответствие типов. Несовместимые типы переменной и выражения в операторе присваивания;
33 Labеl identifier expected, необходим идентификатор метки.
36 BEGIN expected, необходим BEGIN.
37 END expected, необходим END.
38 Integer expression expected, необходимо выражение типа Integer.
41 Operand types do not match operator, типы операндов не соответствуют операции.
42 Error in expression, ошибка в выражении.
50 DO expected, необходим оператор DO.
57 THEN expected, необходим THEN.
62 Division by zero, предшествующая операция пытается выполнить деление на ноль.
79 Integer or real expression expected, необходимо выражение вещественного или целого типа.
85 “;”expected, отсутствует точка с запятой.
89 “)”expected, пропущена скобка.
97 Invalid FOR control variable, неверный параметр цикла оператора FOR.
98 Integer variable expected, переменная должна иметь целый тип.
113 Error in statement, ошибка в операторе, данный символ не может быть первым символом в операторе.
207 Invalid floating point operation, недопустимая операция с плавающей запятой (отрицательный аргумент функции SQRT или аргумент функции LN равен нулю или имеет отрицательное значение).
Контрольные вопросы по теме «Алгоритмизация и программирование»
1. Этапы решения задач на ЭВМ.
2. Понятие алгоритма, свойства алгоритмов.
3. Способы задания алгоритмов.
4. Линейная структура алгоритмов.
5. Разветвляющая структура алгоритмов.
6. Циклическая структура алгоритмов.
7. Характеристика языков программирования.
8. Трансляторы с языков программирования.
9. Алгоритмический язык Turbo Pascal: особенности, назначение.
10. Алфавит и словарь языка Turbo Pascal.
11. Константы и переменные.
12. Структура программы. Требования к написанию программ.
13. Классификация типов данных.
14. Стандартные типы данных.
15. Пользовательские типы данных.
16. Выражения, операции, операнды.
17. Приоритеты выполнения операций.
18. Понятие оператора. Простые операторы.
19. Структурные операторы: составной оператор.
20. Структурные операторы: условные операторы.
21. Структурные операторы: операторы повтора.
22. Понятие массива, характеристика массива.
23. Описание массивов.
24. Порядок разработки программы на Turbo Pascal.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1. Бабушкина, И. А. Практикум по Турбо Паскалю: учебное пособие по курсам «Информатика и вычислительная техника» / , . – М. : АБФ, 1998. – 384с.
2. Немнюгин, С. А. Turbo Pascal / . – СПб. : Питер, 2002. – 496с.
3. Основы программирования / . – 3-е изд. – М. : БИНОМ. Лаборатория знаний, 2006. – 440с. : ил.
4. Попов, В. Б. Турбо Паскаль для школьников / . – М., 2000.
5. Рапаков, Г. Г. Turbo Pascal для студентов и школьников / , . – СПб. : БХВ-Петербург, 2004. – 352с.
6. Фаронов, В. В. Турбо Паскаль 7.0. Практическое программирование / . − Киев, 2000.
7. Фаронов, В. В. Турбо Паскаль 7.0. Начальный курс / . – Киев, 2000.
Учебное издание
ИНФОРМАТИКА
Методические указания для самостоятельной работы
студентов очной формы обучения
по выполнению индивидуальных заданий
Составители:
, ,
Перевощикова
Технический редактор
Подписано в печать «____»___________2009г.
Формат 60×84/16. Гарнитура Times New Roman
Усл. печ. л. ______ Уч.-изд. л. ______ Тираж _______ экз. Заказ № _______
ФГОУ ВПО Ижевская ГСХА
1
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 |






































