Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Действия с одномерными массивамиСодержание книги
Поиск на нашем сайте
условимся, что в векторе а содержится n элементов. · Вычисление суммы элементов: s:=0; for i:=l to n do s:=s+a[i]; { обычное накопление суммы в s } · Вычисление произведения элементов: S:=1; For i:=l to n do s:=s*a[i]; { накопление произведения в s } · Подсчет количества элементов, удовлетворяющих какому-либо условию. Например, подсчет количества четных чисел в целочисленном массиве: K:=0; for i:=l to n do if a[i] mod 2=0 then k:=k+l; { увеличиваем на 1 счетчик четных } { чисел, если число делится на 2 } · Поиск элемента с заданным значением. Найти элемент — это значит выяснить его номер в массиве. Например, найдем номер первого из элементов массива а, имеющего нулевое значение. Если таких элементов нет, выведем соответствующее сообщение. i:=0; { номер элементов массива } repeat i:=i+l; until(a[i]=0) { нашли } or (i=n) { массив кончился }; if a[i]=0 then writeln ('Номер первого нулевого элемента = ‘,i) else writeln ('Таких элементов нет’); · Поиск максимального элемента и его номера (см. листинг 4.2). Переменная max хранит значение максимума, k — его номер в массиве: max:=a[l]; к:=1; { поиск начинаем с первого элемента } for i:=2 to n do { перебираем элементы, начиная со второго } if a[i]>max then begin max:=a[i]; k:=i; { запоминаем значение и номер элемента, } { который больше всех предыдущих} end; Аналогично, при смене знака a[i]<min находится минимальный элемент min. Действия с двумерными массивами Условимся, что массив а состоит из n строк и m столбцов. · Суммирование элементов каждой строки. Результатом является массив с именем d, состоящий из n сумм элемент строк: for i:=l to n do begin s:=0; for j:=l to m do s:=s+a[i,j]; d[i]:=s; end; · Поиск минимального элемента всей матрицы. Переменная min используется для хранения значения минимального элемента, к — номер строки, 1 — номер столбца, где он находится: min:=a[l,l]; k:=l; 1:=1; for i:=l to n do for j:=1 to m do if a[i,j]<min then begin min:=a[i,j]; k:=i; l:=j; end; · Умножение матрицы а на вектор х, в результате получается новый вектор y: for i:=l to n do begin s:=0; for j:=1 to m do s:=s+a[i,j]*x[j]; y[i]:=s; end;
Пример решения задачи Задача Сформировать массив (одномерный) из 5 - ти чисел от 17 до 21. И вывести его на экран. Затем найти сумму всех его чисел и вывести это значение на экран с пояснением. 1.. Математическое обоснование А - Имя массива A[i] - любой элемент массива i - Счетчик n - Конечное значение счетчика n =5 S - Сумма всех элементов массива А S=S+A[i] - формула для накапливания суммы всех элементов массива. Вид алгоритма: линейно - циклический 2. Блок – схема
3. Исполнение алгоритма с помощью таблицы
4. Программирование Program zadacha; Const n=5; Type mas=Array [1..5] of integer; Var A: mas; i, s: integer; Begin Writeln ('введите массив из пяти элементов'); For i:=1 to 5 do Begin Read (A[i]); End; Writeln ('вывод пяти элементов массива на экран'); Fori: =1 to 5 do Write (A[i]); S: =0; Fori: =1 to 5 do S:=S+A[i]; Writeln; Write('S=', S:4); Readln; Readln; End; End. 5. Запуск на выполнение Меню ðRunðRun 6.Результат работы
Задача. Ввести в ОП элементы целочисленного массива М[3,4], затем вывести их на экран в виде строк и столбцов.
1. Математическое обоснование: М – имя массива n - количество строк b – количество столбцов I – счетчик строк j- счетчик столбцов M[i,j]- любой элемент массива Вид алгоритма: линейно – циклический.
2. Блок-схема
3. Исполнение алгоритма
4. Программирование Program Matrica; Uses CRT; Const n=3;b=4; Type mas=array[1..n,1..b]of integer; Var I,j:integer; M:mas; Writeln(‘введите матрицу из’, n, ‘строк и’, b, ‘столбцов’); For i:=1 to n do Begin For j:=1 to b do Read (m[I,j]); End; Writeln (‘вывод матрицы:’); For i:=1 to n do Begin For j:=1 to b do Write (m[I,j]:4); Writeln; End; End.
5.Запуск на выполнение: Меню ðRun ðRun
6. Результат работы
Процедуры и функции Процедуры Процедура — это независимая именованная часть программы, которую после однократного описания можно многократно вызывать по имени из по следующих частей программы для выполнения определенных действий. Процедура не может выступать как операнд в выражении. Структура процедуры повторяет структуру программы, это "программа в миниатюре" — она также представлена заголовком и телом. В отличие от программы для процедур и функций наличие заголовка обязательно. procedure ИмяПроцедуры(ФормальныеПараметры); { Описательная часть процедуры } Begin { Инструкции исполнительной части процедуры } еnd; Для обращения к процедуре используется оператор вызова процедуры. Он состоит из имени процедуры и списка фактических параметров, отделенных друг от друга запятыми и заключенных в круглые скобки. Список параметров отсутствует, если процедуре не передается никаких значений. Имя Процедуры (ФактическиеПараметры);
Пример решения задачи
Задача: Написать программу с процедурой, которая выводит на экран 3 горизонтальные линии из следующих символов '-', '*', '#'. 1. Математическое обоснование. Len- размер линии в символах, S – символ, которым реализуется линия Вид алгоритма – алгоритм циклом 2. исполнение алгоритма
Функции. Если результатом подпрограммы является только одно значение, то имеет смысл оформить такую подпрограмму не в виде процедуры, а в виде функции. Функция пользователя аналогична процедуре, но имеются два отличия. Функция передает в программу результат своей работы — единственное значение, носителем которого является имя самой функции. Имя функции может входить в выражение как операнд. Функция возвращает результат в точку своего вызова. Функция, определенная пользователем, состоит из заголовка и тела функции. Заголовок содержит зарезервированное слово function, имя функции, заключенный в круглые скобки необязательный список формальных параметров и, обратите внимание — в отличие от процедуры, тип возвращаемого функцией значения: function ИмяФункции(ФормальныеПараметры): ТипРезультата; Имя функции уникально в пределах программы. Тело функции по своей структуре аналогично обычной программе: function ИмяФункции(ФормальныеПараметры): ТипРезультата; (Описательная часть функции) begin { Инструкции исполнительной части функции) ИмяФункции:= Результат; end; В отличие от процедуры, вызов функции не оформляется в виде отдельного оператора. Обращение к функции осуществляется путем использования указателя функции в качестве операнда в некотором выражении. Указатель функции представляет собой имя функции с необязательным списком аргу ментов — фактических параметров. Требования к ним такие же, как и в случае процедуры. Пример решения задачи Задача: составить программу с функцией, для нахождения наибольшего общего делителя. 1. Математическое обоснование. M,N- два натуральных числа Rez – наибольший общий делитель. Вид алгоритма – алгоритм ветвление; 2. Исполнение алгоритма
3. программирование program NOD3; var a,b,rez:integer; function nod(m,n:integer):integer; begin while m<>n do if m>n then m:=m-n else n:=n-m; nod:=m end; begin write ('a='); readln (a); write ('b='); readln(b); rez:=nod(nod(a+b,abs(a-b)),a*b); writeln ('nod=', rez); readln end. 4. Запуск на выполнение Меню ðRunðRun 5. Результат работы
Задания для контрольной работы
Задание №1
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2021-06-14; просмотров: 48; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.22.242.169 (0.007 с.) |