Фнукция должна обязательно возвращать одно значение, а процедура - нет. Например, ты хочешь записать writeln('Hello') и writeln('World') в одну подпрграмму, чтобы при её вызове выполнялся этот код. Функцией ты это не сделаешь, потому что она будет должна вернуть какое-то значение, грубо говоря, переменную. А тут ты ничего не возвращаешь, просто хочешь что-то отобразить, следовательно, это можно сделать только процедурой.
Да, к логопеду хожу, чтобы исправить речь, очень хочу делать качественный контент, планируется решение задач и уроки по веб-программированию (JavaScript, WordPress, 1С-Битрикс, PHP), потому что сейчас моя основная деятельность очень тесно связана с разработкой и продвижением веб-сайтов.
Дан двумерный массив действительных чисел. Найти среднее арифметическое элементов данного массива и количество элементов > среднего арифметического. Ввод и вывод массива и нахождение суммы элементов массива оформить в виде соответствующих процедур.Я уже целый час сижу и не понимаю как это сделать с помощью процедуры.
Думаю как-то так, нужно использовать передачу параметров по ссылке (не по значению), по-сути процедура это просто часть программы оформленная в отдельную структуру: program arr_procedure; uses System.SysUtils; type matrix = array[1..225, 1..225] of integer; // Создаем пользовательский тип данных var myArray: matrix; srednee: integer; procedure inputArray(var ar: matrix;var middle:integer); // Передача параметра по ССЫЛКЕ var i, j: integer; // Локальные переменные begin writeln('Введите двумерный массив 9 значений'); for i := 1 to 3 do begin for j:= 1 to 3 do begin read(ar[i, j]); // Вводим массив middle := middle + ar[i, j]; // Складываем все значения end; writeln; end; middle := middle div 9; // Находим целую часть от деления на количество элементов массива end; procedure outputArray(ar: matrix); // Передача параметра по ЗНАЧЕНИЮ var i, j: integer; // Локальные переменные begin writeln('Вывод массива'); for i := 1 to 3 do begin for j:= 1 to 3 do write(ar[i, j]); // Выводим массив writeln; end; end; procedure kolvo(ar: matrix; middle: integer); var i, j, count: integer; // Локальные переменные begin count := 0; for i := 1 to 3 do for j:= 1 to 3 do if (ar[i, j] > middle) then count := count + 1; writeln('Количество элементов больше среднего арифметического - ', count); end; begin srednee := 0; inputArray(myArray, srednee); // Процедура ввода массива и нахождение среднего //writeln('Среднее арифметическое: ',srednee); outputArray(myArray); // Процедура вывода массива kolvo(myArray, srednee); // Нахождение кол-ва элементов больше среднего арифметического readln; readln end.
У меня вопрес в проц и функ ты парематрам дал разные буквы например 'fn' ты написал 'n' в самой проге. Можно ли написать одно и тоже и в функ. Или проц. или по разному ?
Разница в том, что n - это переменная, она используется в теле основной программы, fn- это параметр функции и он используется исключительно в теле функции, и за переделами данной функции его как бы не существует) Можно назвать параметр функции и переменную программы одинаково, но чтобы не путаться желательно дать им разные названия)
Это значит, что функцию можно использовать как переменную с оператором присвоения. Пример: объявлены переменные var a, b: integer; в теле программы им присвоены значения: a := 10; b:= 20; Также можно сделать следующее: a := b; // в таком случае "a" будет равно 20 (т.е. в переменной "a" будет храниться число 20) Теперь объявим функцию с именем "someFunc", например: function someFunc():integer; //указываем, что функция будет ВОЗВРАЩАТЬ тип integer begin someFunc := 10; end; // Написали тело функции, теперь она будет отдавать число 10, если какая-то переменная присвоит себе значение этой функции, например так: a := someFunc(); // переменная a теперь хранит значение 10, потому что функция после выполнения ВОЗВРАЩАЕТ (отдает) это число.
0:57 - Опять Р не выговорили. Кстати, я также когда начинал исправлять дефект речи жестко выговаривал букву Р, что она как-то не органично звучала в речи.
Спасибо, но я чето не до конца врубаю различия процедуры и функции, зачем вообще процедуры нужны если функции все дела делают
Фнукция должна обязательно возвращать одно значение, а процедура - нет. Например, ты хочешь записать writeln('Hello') и writeln('World') в одну подпрграмму, чтобы при её вызове выполнялся этот код. Функцией ты это не сделаешь, потому что она будет должна вернуть какое-то значение, грубо говоря, переменную. А тут ты ничего не возвращаешь, просто хочешь что-то отобразить, следовательно, это можно сделать только процедурой.
Критика и отзывы очень помогают в работе над уроками, поэтому налетаем и не стесняемся)
Привет, помоги сделать через процедуры. Дана строка символов. Добавить в начало каждого слова символ количества символов предыдущего слова
Ты ваще красава. Очень понятно объясняешь. Продолжай в том же духе
Спасибо!) Такие комментарии очень вдохновляют)
Класно малодец !!👏
спасибо
Всегда пожалуйста!)
Спасибо! Вроде понятно)
будут еще видел ?
курс для егэ например
Да, к логопеду хожу, чтобы исправить речь, очень хочу делать качественный контент, планируется решение задач и уроки по веб-программированию (JavaScript, WordPress, 1С-Битрикс, PHP), потому что сейчас моя основная деятельность очень тесно связана с разработкой и продвижением веб-сайтов.
Дан двумерный массив действительных чисел. Найти среднее арифметическое элементов данного массива и количество элементов > среднего арифметического. Ввод и вывод массива и нахождение суммы элементов массива оформить в виде соответствующих процедур.Я уже целый час сижу и не понимаю как это сделать с помощью процедуры.
Думаю как-то так, нужно использовать передачу параметров по ссылке (не по значению), по-сути процедура это просто часть программы оформленная в отдельную структуру:
program arr_procedure;
uses
System.SysUtils;
type matrix = array[1..225, 1..225] of integer; // Создаем пользовательский тип данных
var
myArray: matrix;
srednee: integer;
procedure inputArray(var ar: matrix;var middle:integer); // Передача параметра по ССЫЛКЕ
var i, j: integer; // Локальные переменные
begin
writeln('Введите двумерный массив 9 значений');
for i := 1 to 3 do begin
for j:= 1 to 3 do begin
read(ar[i, j]); // Вводим массив
middle := middle + ar[i, j]; // Складываем все значения
end;
writeln;
end;
middle := middle div 9; // Находим целую часть от деления на количество элементов массива
end;
procedure outputArray(ar: matrix); // Передача параметра по ЗНАЧЕНИЮ
var i, j: integer; // Локальные переменные
begin
writeln('Вывод массива');
for i := 1 to 3 do begin
for j:= 1 to 3 do
write(ar[i, j]); // Выводим массив
writeln;
end;
end;
procedure kolvo(ar: matrix; middle: integer);
var i, j, count: integer; // Локальные переменные
begin
count := 0;
for i := 1 to 3 do
for j:= 1 to 3 do
if (ar[i, j] > middle) then count := count + 1;
writeln('Количество элементов больше среднего арифметического - ', count);
end;
begin
srednee := 0;
inputArray(myArray, srednee); // Процедура ввода массива и нахождение среднего
//writeln('Среднее арифметическое: ',srednee);
outputArray(myArray); // Процедура вывода массива
kolvo(myArray, srednee); // Нахождение кол-ва элементов больше среднего арифметического
readln;
readln
end.
И ещё почитайте про пользовательские типы данных через type
Спасибо
У меня вопрес в проц и функ ты парематрам дал разные буквы например 'fn' ты написал 'n' в самой проге. Можно ли написать одно и тоже и в функ. Или проц. или по разному ?
Разница в том, что n - это переменная, она используется в теле основной программы, fn- это параметр функции и он используется исключительно в теле функции, и за переделами данной функции его как бы не существует) Можно назвать параметр функции и переменную программы одинаково, но чтобы не путаться желательно дать им разные названия)
Как понять возвращает значение? Пожалуйста объясните
Это значит, что функцию можно использовать как переменную с оператором присвоения.
Пример: объявлены переменные var a, b: integer;
в теле программы им присвоены значения:
a := 10; b:= 20;
Также можно сделать следующее:
a := b; // в таком случае "a" будет равно 20 (т.е. в переменной "a" будет храниться число 20)
Теперь объявим функцию с именем "someFunc", например:
function someFunc():integer; //указываем, что функция будет ВОЗВРАЩАТЬ тип integer
begin
someFunc := 10;
end; // Написали тело функции, теперь она будет отдавать число 10, если какая-то переменная присвоит себе значение этой функции, например так:
a := someFunc(); // переменная a теперь хранит значение 10, потому что функция после выполнения ВОЗВРАЩАЕТ (отдает) это число.
0:57 - Опять Р не выговорили. Кстати, я также когда начинал исправлять дефект речи жестко выговаривал букву Р, что она как-то не органично звучала в речи.
да, непросто это испРРравлять)
Куда ты пропал? Собираешься выпускать новые видео или забросил канал окончательно?
Ну после таких комментариев не хочется пропадать даже)
Отличное видео )
Спасибо!)
очень тихий звук
Норм видос
Ну если бы я знал мало, то и видео делать было бы глупо я думаю
@@CodeBasilio прости. Норм всё. Не обижайся😉
@@Желтыйгусь-ц2м ладно, мир, а то уже ножи заточил))
Ррррррррр
На горе Арарат, рвет Варвара виноград)