- •Практикум по программированию на языке с
- •Порядок выполнения лабораторных работ
- •Основы программирования в среде языка си. Оператор присваивания
- •Приоритет операций в выражении
- •Задание 1 (программа 1_1)
- •Программирование разветвленных алгоритмов. Операторы передачи управления
- •Программирование циклических алгоритмов с заданным числом повторений
- •Программирование циклических алгоритмов с предусловием
- •Программирование циклических алгоритмов с постусловием
- •Модифицировать программу 3_2 для вычисления функций f1(X) и f2 (X) с применением оператора цикла с постусловием. Выполнить ее и сравнить результаты с полученными ранее.
- •Программирование алгоритмов обработки одномерных массивов
- •Задание 1
- •Обработка двумерных массивов
- •Программирование с применением функций
- •[Класс] тип имя ([список параметров])[throw (исключения)] {тело функции}
- •Return [выражение];
- •Программирование с возвратом из функций нескольких значений
- •Лабораторная работа 10 Обработка символьных и строковых данных
- •Структуры
- •Модульное программирование
- •Динамические структуры данных. Списки
- •Задание 1 (программа 14_1)
- •Графика
- •Задание к расчетно-графической работе
- •Библиографический список
- •Типы данных
- •Обозначения графические в схемах алгоритмов (гост 19.701-90)
- •Сообщения об ошибках Сообщения об ошибках периода компиляции
- •Ошибки стадии выполнения
- •Математические ошибки
- •Функции ввода-вывода для стандартных потоков
- •Функции для работы со строками
- •Библиотека заголовочных файлов
- •Контейнерные классы
Структуры
Цель работы: научиться разрабатывать и отлаживать программы с использованием комбинированного типа - «структура».
Структура может содержать элементы разных типов.
struct [имя_типа]
{
тип_1 элемент_1;
тип_2 элемент_2;
…
тип_n элемент_n;
} [список_переменных];
Элементы структуры называются полями структуры и могут иметь любой тип, кроме типа этой же структуры, но могут быть указателями на него. Если отсутствует имя типа, должен быть указан список описателей переменных, указателей или массивов. В этом случае описание структуры служит определением элементов этого списка. Частными видами полей структуры являются побитовые поля и объединения (union).
Пример: Разработать программу формирования списка студентов с указание М дат рождения и выборки студентов по году рождения.
#include <stdio.h>
#include <conio.h>
struct student //определение нового типа
{
char name [15];
struct // вложенная структура (запись)
{
unsigned den,mes;
unsigned int god ;
} denRogd;
} ;
void main ()
{
struct student z [20];
unsigned short g, i, n; // g- год
clrscr(); // очистка экрана
printf("Введите количество студентов");
scanf ("%u", &n);
for (i=0; i<n; ++i)
{
printf("Введите имя %u студента",i+1);
scanf ("%s", z[i].name);
printf ("Введите день рождения ");
scanf ("%u", &z[i].denRogd.den);
printf ("Введите месяц рождения");
scanf ("%u", &z[i].denRogd.mes);
printf ("Введите год рождения");
scanf ("%d", &z[i].denRogd.god);
}
printf ("Введите год для поиска ");
scanf ("%u",&g);
printf (" Список\n");
for ( i=0; i<n; ++i )
{
if (z[i].denRogd.god==g)
{
printf ("Имя студента ");
printf ("%s\n",z[i].name);
printf ("Дата рождения - ");
printf ("%u ",z[i].denRogd.den);
printf ("%u ",z[i].denRogd.mes);
printf ("%d",z[i].denRogd.god);
printf ("\n");
}
}
getch();
}
Задание 1 (программа 12_1)
1. Ввести оценки студента по 5 экзаменам. Определить средний балл и подсчитать количество удовлетворительных, хороших и отличных оценок. Напечатать название предмета, если есть «неуд».
2. Дан список студентов и оценка каждого на экзамене (оценки на N экзаменах). Подсчитать количество удовлетворительных оценок, хороших, отличных и средний балл в группе. Напечатать фамилии неуспевающих студентов.
3. Дан список студентов группы. Заполнить его следующими сведениями: фамилия, имя, отчество; имеет ли компьютер (если имеет, то какой и с какого года). Подсчитать сколько студентов имеют ПК.
4. Сформировать список студентов группы со следующими сведениями: Фамилия, имя, отчество, знает ли языки программирования Turbo Pascal, Cи (если да, где обучался и сколько лет). Подсчитать, сколько студентов знают язык Си, сколько – Turbo Pascal, сколько - оба языка.
5. Сформировать список студентов группы, в котором указать фамилию (имя, отчество); город, в котором получил среднее образование (номер школы, если обучался в Омске). Подсчитать, сколько в группе иногородних студентов.
6. Сформировать запись «ключевые слова ТР»: слово и перевод. Подсчитать их количество. Организовать поиск: по ключевому слову - перевод и наоборот.
7. Сформировать телефонный справочник. По номеру организовать поиск владельца и наоборот.
8. Сформировать запись «Даты - праздники». Организовать в программе ввод дат, подсчитать число праздничных дней и рабочих.
9. Сформировать запись «английское слово-перевод». Вводя слово (английское или русское), найти перевод или выдать сообщение «нет в словаре». По возможности предусмотреть пополнение словаря.
10. Сформировать запись «операторы ТР»: оператор, действие. Подсчитать их количество и количество операторов имеющих повторяющиеся ключевые слова.
11. Сформировать запись «типы ТР»: имя, тип, операции, разрешенные в данном типе. Подсчитать количество разных операций и вывести списки типов для каждой операции.
12. Сформировать пополняемую базу данных «Континент - страны», в которой указать столицы, численность населения, крупные города. Организовать поиск страны по городу, стран или городов на континенте.
13. В файле задан список книг (автор, название, год издания). Разработать программу выбора книг, выпущенных ранее заданного года.
14. Сформировать список граждан, в котором указать фамилию, имя, отчество; адрес; профессию. Организовать в программе выборку и подсчет граждан с одинаковой профессией.
15. Сформировать список студентов группы, в котором указать фамилию, имя, отчество; день, число и месяц рождения. Организовать выборки по месяцу и году рождения.
16. Дан список студентов группы. Заполнить его следующими сведениями: фамилия, имя, отчество; день, число и месяц рождения. Распечатать список в порядке возрастания дат рождения.
17. Сформировать базу данных «Единицы измерения», в которой указать название единицы, обозначение, назначение, соотношение. Организовать поиск по любому полю.
18. Разработать базу данных « География. Реки», в которой указать название реки, местоположение, длину, глубину.
19. Разработать базу данных «Астрономия», в которой указать название звезды, величину, созвездие.
20. Разработать базу данных «Планеты солнечной системы», в которой указать название планеты, величину, удаленность, спутники.
21. Сформировать базу данных «Химические элементы», в которой указать название элемента, формулу, группу, организовать выборки.
22. Ввести сведения о человеке: фамилия, имя, отчество, пол, национальность, рост, вес, дата рождения.
23. Ввести сведения о гражданине: Ф.И.О., дата рождения, ИНН, № страхового свидетельства, № мед. полиса. Запрограммировать поиск.
24. Сформировать справочник о спортивных командах: название, город, число сыгранных игр, число очков, количество игроков.
Задание 2 (программа 12_2)
Дополнить программу 12_1 заполнением и обработкой файлов. Имя файла вводить с клавиатуры в процессе работы программы.
Лабораторная работа 13