Лабораторная работа №4. Цель работы: изучение основных концепций функционально-ориентированного подхода
ФУНКЦИИ Цель работы: изучение основных концепций функционально-ориентированного подхода, знакомство с основными приемами реализации пользовательских функций на языке Си.
Задание к лабораторной работе 1 Ознакомиться с основными принципами и особенностями разработки пользовательских функций на языке Си, способами передачи параметров; 2 Выполнить последовательно все пункты, указанные в разделе «Ход работы»; 3 Написать программу в соответствии с выданным вариантом задания (см. раздел «Варианты заданий»); 4 Оформить отчет.
Ход работы 1. Написать функцию с параметрами, передаваемыми по ссылке, например: void swap (int& a, int& b) { int t; t = a; a = b; b = t; } 2. Исследовать программу нахождения максимума из двух чисел, приведенную ниже, понять, как она работает. #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)); } 3. Переделать программу, полученную в п.3 лабораторной работы №3 таким образом, чтобы для ввода и вывода данных, а так же заполнения матрицы использовались функции, не возвращающие значения. 4. Переделать программу, полученную в п.4 таким образом, чтобы для ввода данных и вычислений использовались функции, возвращающие значения. 5. Написать функцию, возвращающую разные значения, в зависимости от условия. Написать программу, использующую эту функцию. Пример: 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; } 6. Переделать программу, полученную в лабораторной работе №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. Отсортировать массив из структур по одному из полей структуры любым способом.
Лабораторная работа №6 ФАЙЛЫ Цель работы: изучение основных приемов и алгоритмов, используемых при обмене информацией с внешней памятью, а также особенностей их программной реализации на зыке Си.
Задание к лабораторной работе 1 Изучить основные принципы и особенности организации обмена с внешней памятью на языке Си; 2 Ознакомиться с особенностями динамического распределения памяти средствами языка Си, использованием динамического распределения памяти в программах, реализующих алгоритмы обработки массивов информации. 3 Выполнить последовательно все пункты, указанные в разделе «Ход работы»; 4 Написать программу в соответствии с выданным вариантом задания (см. раздел «Варианты заданий»), при выполнении любого из заданий массивы, используемые для промежуточного хранения данных, должны размещаться в памяти динамически; 5 Оформить отчет.
Ход работы 1. Написать программу, читающую значения переменных из файла, и выводящую их на экран. Ниже приведена программа чтения информации из файла, содержащего целые числа.
#include <stdio.h> #include <stdlib.h>
void main() { FILE *f; int i,size,*array;
f=fopen("lab1.dat","rb"); /* открыть файл */ if (f) { /* если операция открытия успешна */ /* определить размер файла */ fseek(f,0L,SEEK_END); size=ftell(f)/sizeof(int); fseek(f,0L,SEEK_SET);
array=(int *)malloc(size); /* выделить память под размещение */ /* массива */ for (i=0; i<size; i++) { fread(&array[i],sizeof(int),1,f); /* читать из файла целое число */ printf("%d\n",array[i]); /* вывести число на экран */ } } } 2. Используя программу, полученную в ходе выполнения лабораторной работы №5, осуществить сохранение массива структур в бинарный файл. 3. Написать отдельную программу чтения массива из структур из файла и вывода на экран, используя функции, написанные в лабораторной работе №5. Варианты заданий Изменить программу, разработанную в ходе лабораторной работы №3, таким образом чтобы ввод исходных данных осуществлялся из файла, результат также должен выводиться в файл.
Популярное: Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (417)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |