Лабораторная работа № 3.ТИПОВЫЕ и БЕСТИПОВЫЕ ПОДПРОГРАММЫ - ФУНКЦИИ
Состав работы
|
|
Работа представляет собой файл, который можно открыть в программе:
- Microsoft Word
Описание
Лабораторная работа No 3
ТИПОВЫЕ и БЕСТИПОВЫЕ ПОДПРОГРАММЫ - ФУНКЦИИ
Цель работы: Приобрести навыки разработки и использования функций, разработанных пользователем.
Вариант задания
Для каждого пункта задания написать подпрограмму-функцию
- сформировать матрицу А(NхM);
-вывести на экран значения матрицы, расположив каждую строку матрицы на строку экрана;
- найти в матрице минимальное отрицательное число;
- вычислить суммы отрицательных и положительных элементов отдельно, но в одной функции.
Написать функцию (main), вызывающую разработанные вами функции.
Блок- схема
Листинг
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int ** make(int n, int m);
void print_matrix(int **a, int n, int m);
int min_negative(int **a, int n, int m, int *negative);
void calc_negative_positive(int **a, int n, int m, int *negative,int *positive);
int main()
{
int **a;
int n=3, m=4,i;
int negative,positive;
srand(time(NULL));
a=make(n,m);
print_matrix(a,n,m);
if(min_negative(a,n,m,&negative)){
printf("minimum negative number=%d\n",negative);
}
else{
printf("Not minimum negative number!\n");
}
calc_negative_positive(a,n,m,&negative,&positive);
printf("sum of negative elements=%d\nsum of positive elements=%d\n",negative,positive);
if(a){
for(i=0;i<n;i++){
if(a[i]){
free(a[i]);
}
}
free(a);
}
return 0;
}
int ** make(int n, int m){
int i,j;
int **a=malloc(n*sizeof(*a));
for(i=0;i<n;i++){
a[i]=malloc(m*sizeof(a[i]));
for(j=0;j<m; j++){
a[i][j]=rand()%20-rand()%20;
}
}
return a;
}
void print_matrix(int **a, int n, int m){
int i,j;
for(i=0;i<n;i++){
for(j=0;j<m;j++){
printf("%4d",a[i][j]);
}
printf("\n");
}
}
int min_negative(int **a, int n, int m, int *negative){
int i,j,flag=0;
(*negative)=0;
for(i=0;i<n;i++){
for(j=0;j<m;j++){
if(a[i][j]<0 && (*negative)>a[i][j]){
(*negative)=a[i][j];
flag=1;
}
}
}
return flag;
}
void calc_negative_positive(int **a, int n, int m, int *negative,int *positive){
int i,j;
(*negative)=0;
(*positive)=0;
for(i=0;i<n;i++){
for(j=0;j<m;j++){
if(a[i][j]<0){
(*negative)+=a[i][j];
}
else{
(*positive)+=a[i][j];
}
}
}
}
Итоги работы :
Контрольные вопросы
1. Функция - это совокупность объявлений и операторов, обычно предназначенная для решения определенной задачи. Каждая функция должна иметь имя, которое используется для ее объявления, определения и вызова.
2. Каждая функция в языке Си должна быть определена, то есть должны быть указаны:
тип возвращаемого значения;
имя функции;
информация о формальных аргументах;
тело функции.
3. Функция всегда возвращает единственное значение. Тип void в качестве возращаемого типа,т.е. указали компилятору, что функция не возвращает никакого значения.
4. При объявлении функции указываются формальные параметры, которые потом используются внутри самой функции. При вызове функции мы используем фактические параметры. Фактическими параметрами могут быть переменные любого подходящего типа или константы.
5. Переменные, объявленные внутри функции, называются локальными. Локальные переменные имеют свои области видимости, этими областями являются функции, в которых объявлены переменные. Таким образом, в разных функциях можно использовать переменные с одинаковыми именами, что в свою очередь очень удобно. Разделение переменных на глобальные и локальные соответствует одному из главных правил программирования, а именно – принципу наименьших привилегий. То есть, переменные, объявленные внутри одной функции, должны быть доступны только для этой функции и ни чему другому, в конце концов, они создавались именно для этой функции. Глобальные переменные объявляются вне тела какой-либо функции, и поэтому область видимости таких переменных распространяется на всю программу.
ТИПОВЫЕ и БЕСТИПОВЫЕ ПОДПРОГРАММЫ - ФУНКЦИИ
Цель работы: Приобрести навыки разработки и использования функций, разработанных пользователем.
Вариант задания
Для каждого пункта задания написать подпрограмму-функцию
- сформировать матрицу А(NхM);
-вывести на экран значения матрицы, расположив каждую строку матрицы на строку экрана;
- найти в матрице минимальное отрицательное число;
- вычислить суммы отрицательных и положительных элементов отдельно, но в одной функции.
Написать функцию (main), вызывающую разработанные вами функции.
Блок- схема
Листинг
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int ** make(int n, int m);
void print_matrix(int **a, int n, int m);
int min_negative(int **a, int n, int m, int *negative);
void calc_negative_positive(int **a, int n, int m, int *negative,int *positive);
int main()
{
int **a;
int n=3, m=4,i;
int negative,positive;
srand(time(NULL));
a=make(n,m);
print_matrix(a,n,m);
if(min_negative(a,n,m,&negative)){
printf("minimum negative number=%d\n",negative);
}
else{
printf("Not minimum negative number!\n");
}
calc_negative_positive(a,n,m,&negative,&positive);
printf("sum of negative elements=%d\nsum of positive elements=%d\n",negative,positive);
if(a){
for(i=0;i<n;i++){
if(a[i]){
free(a[i]);
}
}
free(a);
}
return 0;
}
int ** make(int n, int m){
int i,j;
int **a=malloc(n*sizeof(*a));
for(i=0;i<n;i++){
a[i]=malloc(m*sizeof(a[i]));
for(j=0;j<m; j++){
a[i][j]=rand()%20-rand()%20;
}
}
return a;
}
void print_matrix(int **a, int n, int m){
int i,j;
for(i=0;i<n;i++){
for(j=0;j<m;j++){
printf("%4d",a[i][j]);
}
printf("\n");
}
}
int min_negative(int **a, int n, int m, int *negative){
int i,j,flag=0;
(*negative)=0;
for(i=0;i<n;i++){
for(j=0;j<m;j++){
if(a[i][j]<0 && (*negative)>a[i][j]){
(*negative)=a[i][j];
flag=1;
}
}
}
return flag;
}
void calc_negative_positive(int **a, int n, int m, int *negative,int *positive){
int i,j;
(*negative)=0;
(*positive)=0;
for(i=0;i<n;i++){
for(j=0;j<m;j++){
if(a[i][j]<0){
(*negative)+=a[i][j];
}
else{
(*positive)+=a[i][j];
}
}
}
}
Итоги работы :
Контрольные вопросы
1. Функция - это совокупность объявлений и операторов, обычно предназначенная для решения определенной задачи. Каждая функция должна иметь имя, которое используется для ее объявления, определения и вызова.
2. Каждая функция в языке Си должна быть определена, то есть должны быть указаны:
тип возвращаемого значения;
имя функции;
информация о формальных аргументах;
тело функции.
3. Функция всегда возвращает единственное значение. Тип void в качестве возращаемого типа,т.е. указали компилятору, что функция не возвращает никакого значения.
4. При объявлении функции указываются формальные параметры, которые потом используются внутри самой функции. При вызове функции мы используем фактические параметры. Фактическими параметрами могут быть переменные любого подходящего типа или константы.
5. Переменные, объявленные внутри функции, называются локальными. Локальные переменные имеют свои области видимости, этими областями являются функции, в которых объявлены переменные. Таким образом, в разных функциях можно использовать переменные с одинаковыми именами, что в свою очередь очень удобно. Разделение переменных на глобальные и локальные соответствует одному из главных правил программирования, а именно – принципу наименьших привилегий. То есть, переменные, объявленные внутри одной функции, должны быть доступны только для этой функции и ни чему другому, в конце концов, они создавались именно для этой функции. Глобальные переменные объявляются вне тела какой-либо функции, и поэтому область видимости таких переменных распространяется на всю программу.
Дополнительная информация
работа выполнена без замечаний,2021г.
Похожие материалы
Типовые и бестиповые подпрограммы - функции. Лабораторная работа №3
Severniolen
: 30 августа 2021
Вариант No8: Для каждого пункта задания написать подпрограмму-функцию:
- сформировать матрицу А(NхN);
- вывести на экран значения матрицы, расположив каждую строку матрицы на строку экрана;
- найти в матрице максимальное отрицательное число и его порядковый номер;
- определить, сколько в матрице чисел, равных максимальному.
- Написать функцию (main), вызывающую разработанные вами функции.
Результаты подготовки:
- Схема алгоритма решения задачи:
1. Считать размерность матрицы
2. Вызвать функцию
100 руб.
Типовые и бестиповые подпрограммы - функции
proftp
: 30 января 2021
1. Номер и тема лабораторной работы
Лабораторная работа No3
Тема: «Типовые и бестиповые подпрограммы - функции»
2. Вариант задания
Вариант No15
Для каждого пункта задания написать подпрограмму-функцию:
сформировать матрицу А(NхN).
вывести на экран значения матрицы, расположив каждую строку матрицы на строку экрана;
найти в матрице количество чётных чисел над главной диагональю матрицы;
найти значения максимального на главной диагонали и минимального элемента матрицы на побочной диагонали, ра
200 руб.
Лабораторная работа №3 на тему: «ТИПОВЫЕ И БЕСТИПОВЫЕ ПОДПРОГРАММЫ – ФУНКЦИИ»
Ксю1
: 23 марта 2021
Лабораторная работа №3
На тему: «ТИПОВЫЕ И БЕСТИПОВЫЕ ПОДПРОГРАММЫ – ФУНКЦИИ»
по дисциплине "Информатика"
ВАРИАНТ 02
200 руб.
Лабораторная работа № 3 ТИПОВЫЕ и БЕСТИПОВЫЕ ПОДПРОГРАММЫ - ФУНКЦИИ ВАРИАНТ 5
Пользователь Google
: 19 января 2026
Цель работы: Приобрести навыки разработки и использования функций, разработанных пользователем.
Подготовка к лабораторной работе:
1. Повторить такие понятия языка Си как: функции, структура типовой функции, структура бестиповой функции, списки фактических и формальных параметров, вызов типовой функции, обращение к бестиповой функции.
2. В соответствии с вариантом задания разработать алгоритм решения задачи, описать его в виде схемы.
Задание к лабораторной работе
В соответствии с
80 руб.
Лабораторная работа №3 Вариант №1, ТИПОВЫЕ и БЕСТИПОВЫЕ ПОДПРОГРАММЫ - ФУНКЦИИ
Crusader86ru
: 30 октября 2024
ТИПОВЫЕ и БЕСТИПОВЫЕ ПОДПРОГРАММЫ - ФУНКЦИИ
Цель работы: Приобрести навыки разработки и использования функций, разработанных пользователем.
Задание
В соответствии с индивидуальным заданием, номер которого совпадает с двумя последними цифрами вашего пароля, разработать алгоритмы и программу на языке Си с использованием разработанных автором функций
Вариант №1
1. Для каждого пункта задания написать подпрограмму-функцию
- сформировать целочисленную матрицу А(NхN);
- вывести на экран знач
50 руб.
ВАРИАНТ №10 Лабораторная работа № 3 ТИПОВЫЕ и БЕСТИПОВЫЕ ПОДПРОГРАММЫ - ФУНКЦИИ
DimaDima
: 6 июля 2024
Цель работы: Приобрести навыки разработки и использования функций, разработанных пользователем.
Подготовка к лабораторной работе:
1. Повторить такие понятия языка Си как: функции, структура типовой функции, структура бестиповой функции, списки фактических и формальных параметров, вызов типовой функции, обращение к бестиповой функции.
2. В соответствии с вариантом задания разработать алгоритм решения задачи, описать его в виде схемы.
Задание к лабораторной работе
В соответствии с индивидуа
350 руб.
Лабораторная работа №3 ,ТИПОВЫЕ и БЕСТИПОВЫЕ ПОДПРОГРАММЫ – ФУНКЦИИ, вариант 12
Дистанционное обучение СибГУТИ 2026
: 7 марта 2023
ВАРИАНТ №12
1. Для каждого пункта задания написать подпрограмму-функцию
- сформировать матрицу А(NхN);
-вывести на экран значения матрицы, расположив каждую строку матрицы на строку экрана;
- найти в матрице количество отрицательных чисел над побочной диаго-налью и под побочной диагональю отдельно, но одной функцией;
- увеличить элементы главной диагонали матрицы на количество отрица-тельных чисел над побочной диагональю.
Написать функцию (main), вызывающую разработанные вами функции
700 руб.
ЛАБОРАТОРНАЯ РАБОТА 3 ТИПОВЫЕ и БЕСТИПОВЫЕ ПОДПРОГРАММЫ - ФУНКЦИИ по дисциплине «Информатика»
Oksgus
: 15 декабря 2022
Задание:
В соответствии с индивидуальным заданием, номер которого совпадает с двумя последними цифрами вашего пароля, разработать алгоритмы и программу на языке Си с использованием разработанных автором функций.
ВАРИАНТ №2
1. Для каждого пункта задания написать подпрограмму-функцию
- сформировать матрицу А(NхN).
-вывести на экран значения матрицы, расположив каждую строку матрицы на строку экрана;
- найти в матрице количество положительных чисел;
- посчитать кол
450 руб.
Другие работы
Экономико-географическая характеристика Аргентины
alfFRED
: 27 сентября 2013
Состав территории…………………………………………………………….3
ЭГП (экономико-географическое положение)………………….4
ПГП (политико-географическое положение)…………………...4
2. Природные условия и ресурсы…………………………………………………..4
3. Население…………………………………………………………………………...5
4. Общая характеристика хозяйства……………………………………………7
5. Промышленность………………………………………………………………….9
5.1. Топливно-энергетическая……………………………………………...9
5.2. Горнодобывающая……………………………………………………..10
5.3. Металлургическая …………………………………………………
10 руб.
Экзамен. Теория электрической связи. Билет №19
albanec174
: 9 апреля 2013
1. Комплексное представление случайных прцессов.
Преобразование Гильберта. Аналитический сигнал.
2. Статистические критерии оптимального приема дискретных сигналов.
1. Комплексное представление случайных процессов.
Преобразование Гильберта. Аналитический сигнал.
При математическом анализе очень часто вместо вещественных сигналов с целью упрощения математического аппарата преобразований данных удобно использовать эквивалентное комплексное представление сигналов. Так, например, в теории
80 руб.
Лабораторная работа №1. Выбор резистора для зарядных устройств
autotransport
: 24 августа 2020
Лабораторная работа №1
Выбор резистора для зарядных устройств
Цель лабораторной работы: Изучение цветовой маркировки резисторов.
Выбор варианта: Вариант выбирается по двум последним цифрам пароля.
Задание:
1. Изучить материал, приведенный в лекции №1.
2. Осуществить расчет сопротивления Rx по условию, приведенного в задаче №1.
3. С использованием онлайн-калькулятора, приведенного по адресу http://beamrobot.ru/electronics_for_beginners/resistor-color-code.php определить номинал Rном резисто
100 руб.
Лабораторная работа №5 по дисциплине "Структуры и алгоритмы обработки данных. Часть 2"
Greenberg
: 7 октября 2011
Часть 2. "Древовидные структуры данных"
Тема: Построение дерева почти оптимального поиска.
Цель работы: Освоить методы построения ДОП приближенными методами.
Порядок выполнения работы:
1. Разработать процедуры построения ДОП приближенными методами А1 и А2.
2. Вычислить средневзвешенную высоту построенных ДОП для n=10, 50, 100, 200, 400 (n -количество вершин в дереве) и заполнить таблицу следующего вида. Проанализировать полученные результаты, сравнить их между собой..
49 руб.