Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Progr_v_integrirovannykh_sredakh_2010.doc
Скачиваний:
12
Добавлен:
16.09.2019
Размер:
350.72 Кб
Скачать

Лабораторная работа №4 функции

Цель работы: изучение основных концепций функционально-ориентированного подхода, знакомство с основными приемами реализации пользовательских функций на языке Си.

Задание к лабораторной работе

  1. Ознакомиться с основными принципами и особенностями разработки пользовательских функций на языке Си, способами передачи параметров;

  2. Выполнить последовательно все пункты, указанные в разделе «Ход работы»;

  3. Написать программу в соответствии с выданным вариантом задания (см. раздел «Варианты заданий»);

  4. Оформить отчет.

Ход работы

  1. Написать функцию с параметрами, передаваемыми по ссылке, например:

void swap (int& a, int& b) {

int t;

t = a; a = b; b = t;

}

  1. Исследовать программу нахождения максимума из двух чисел, приведенную ниже, понять, как она работает.

#include <stdio.h>

int max(int a,b) {

return (a>b)?a:b;

}

void main() {

int m,n;

scanf(“%d”, m);

scanf(“%d”, n);

printf(“%d”,max(m,n));

}

  1. Переделать программу, полученную в п.3 лабораторной работы №3 таким образом, чтобы для ввода и вывода данных, а так же заполнения матрицы использовались функции, не возвращающие значения.

  2. Переделать программу, полученную в п.4 таким образом, чтобы для ввода данных и вычислений использовались функции, возвращающие значения.

  3. Написать функцию, возвращающую разные значения, в зависимости от условия. Написать программу, использующую эту функцию. Пример:

int f(int p) {

if (p==1) return 1;

if (p==2) return 4;

if (p>2) return p+5;

if (p==0) return 666;

return p-1000;

}

  1. Переделать программу, полученную в лабораторной работе №2 п.3. таким образом, чтобы вместо вложенных ветвлений использовались функции. Пример:

int siro (int p) {

if (p== “Y”) { //тепло?

return 1; // весна

} else return 3; // осень

}

int syxo (int p) {

if (p== “Y”) { //тепло?

return 2; // лето

} else return 0; // зима

}

int check (char a, char b) {

if (b == “Y”) { //сыро? - весна или осень

return siro(a);

} else return suxo(a);

}

void main () {

char a,b;

int vg[4] = {“Зима”, “Весна”, “Лето”, “Осень”};

printf(“Тепло? (Y/N)”); scanf(“%c”,&a);

printf(“Сыро? (Y/N)”); scanf(“%c”,&b);

printf(“%s”,vg[check(a,b)]);

}

Варианты заданий

Для варианта задания, выполненного в ходе предыдущей лабораторной работы, разработать и реализовать программу с использованием функций.

Лабораторная работа №5 структуры

Цель работы: научиться работать со структурами данных, укрепить навыки работы с функциями.

Задание к лабораторной работе

  1. Ознакомиться с особенностями такого типа данных как структура;

  2. Выполнить последовательно все пункты, указанные в разделе «Ход работы»;

  3. Оформить отчет.

Ход работы

  1. Объявить структуру данных и две переменных такого типа. Записать значения в переменные, вывести их на экран.

  2. Объявить объединение (union), разобраться, чем отличается структура от объединения.

  3. Объявить объединение из двух структур и структуру из двух объединений. Заполнить значениями, вывести на экран.

  4. Объявить массив из структур. Записать значения в массив с помощью цикла, вывести на экран.

  5. Написать функцию вывода структуры на экран. Переделать программу, полученную в п.4, с использованием этой функции.

  6. Написать функцию, выводящую весь массив структур, используя функцию из п.5 в цикле.

  7. Написать функцию заполнения структуры случайными данными.

  8. Написать функцию заполнения всего массива структур, использующую функцию из п.7 в цикле.

  9. Написать функцию перестановки данных в двух структурах, передаваемых по ссылке. Проверить ее работоспособность.

  10. Отсортировать массив из структур по одному из полей структуры любым способом.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]