Лабораторная работа № 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 Вариант №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 руб.
ТИПОВЫЕ и БЕСТИПОВЫЕ ПОДПРОГРАММЫ - ФУНКЦИИ. Лабораторная работа №3. Вариант №18
Дима35
: 5 октября 2021
Лабораторная работа № 3
по дисциплине
«Информатика»
ТИПОВЫЕ и БЕСТИПОВЫЕ ПОДПРОГРАММЫ - ФУНКЦИИ
Задание
В соответствии с индивидуальным заданием, номер которого совпадает с двумя последними цифрами вашего пароля, разработать алгоритмы и программу на языке Си с использованием разработанных автором функций.
Варианты заданий:
ВАРИАНТ №18
1. Для каждого пункта задания написать подпрограмму-функцию
- сформировать матрицу А(NхN)
-вывести на экран значения матрицы, расположив каждую строку
300 руб.
Другие работы
Экзамен по основам схемотехники. Билет № 8
andreyka1486
: 29 января 2013
Билет № 8
Дисциплина «Основы схемотехники».
1. Классификация усилительных устройств.
2. Эквивалентная схема каскада с резисторно-конденсаторной связью.
3. Схема неинвертирующего операционного усилителя.
Ответы.
Вопрос 1. Классификация усилительных устройств.
Для полного ответа на поставленный вопрос, для начала, требуется некоторое разъяснение – что же такое усилительное устройство? Рассмотрим следующее определение. Усилительное устройство УО.....
50 руб.
Математика (часть 1-я). Экзамен. Билет №1
Cole82
: 1 июня 2015
1. Комплексные числа, формы записи, действия над комплексными в алгебраической форме.
2. Геометрический и физический смысл производной. Уравнение касательной к линии.
3. Вычислить предел.
4. Найти точки экстремума функции.
5. Найти интеграл.
6. Вычислить интеграл.
7. Исследовать сходимость интеграла.
8. Найти площадь фигуры, ограниченной линиями.
21 руб.
Человеко-машинное взаимодействие. Лабораторные работы №1-4. Вариант №10 (0).
nik200511
: 11 апреля 2016
Лабораторная работа №1
1.1. Найдите один источник (в библиотеке или в Интернете), который говорит об опытных свидетельствах человеческих ограничений. Дайте полную ссылку на найденный источник. Опишите в пределах 15 строк (шрифт 12), что говорят результаты исследований по поводу физических ограничений человека.
1.2. Составьте семантическую сеть для выбранных вами понятий (не менее восьми) и их свойств. Приведите пример вывода утверждения с использованием этой сети.
1.3. Придумайте по одному
175 руб.
Гидравлика Пермская ГСХА Задача 89 Вариант 3
Z24
: 6 ноября 2025
Определить толщину стенок трубопровода, чтобы напряжение в них от повышения давления при мгновенном закрытии затвора не превышало σ. Диаметр трубопровода d, скорость движения жидкости в нем до закрытия затвора υ0. Задачу решить методом последовательного приближения, задавшись ориентировочно скоростью ударной волны в интервале 400…450 м/с для труб из полиэтилена и 900…1300 м/с для труб из других материалов.
180 руб.