Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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.Результат работы
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; просмотров: 100; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.007 с.) |