- •Министерство образования Республики Беларусь
- •Лабораторная работа № 1 Линейные и разветвляющиеся вычислительные процессы
- •Краткие теоретические сведения
- •Алфавит языка с
- •Классификация данных
- •Декларирование объектов
- •Структура программы
- •Функции вывода информации
- •Функции ввода информации
- •Стандартные математические функции
- •Операция присваивания
- •Операторы перехода
- •If ( условие ) оператор_1;
- •If (условие_1) оператор_1;
- •Оператор выбора switch
- •Варианты индивидуальных заданий
- •Циклические операторы while и do–while
- •Вложенные циклы
- •Варианты индивидуальных заданий
- •Контрольные вопросы
- •Строки как одномерные массивы символов
- •Указатели и операции над адресами
- •Связь указателей и массивов
- •Пример 1: Упорядочить по алфавиту массив строк (не более 20) длиной не более 10 символов в каждой.
- •Пример 2: Проверить, является ли введенная строка (не более 80 символов) палиндромом (справа налево читается так же, как и слева направо).
- •Массивы указателей
- •Варианты индивидуальных заданий
- •Контрольные вопросы
- •Указатели на указатели
- •Таким образом, указатели на указатели – это имена многомерных массивов. Динамическое размещение данных
- •Проверить, является ли введенная строка палиндромом (справа налево читается так же, как и слева направо).
- •Варианты индивидуальных заданий
- •Контрольные вопросы
- •Область действия переменных
- •Пример работы с функциями Ввести массив NxN (не больше 50) целых чисел, в функции посчитать сумму его положительных значений.
- •Варианты индивидуальных заданий
- •Контрольные вопросы
- •Лабораторная работа № 6 Программирование алгоритмов с использованием структур
- •Краткие теоретические сведения
- •Пример использования структур
- •Варианты индивидуальных заданий
- •Контрольные вопросы
- •Лабораторная работа № 7 Программирование алгоритмов с использованием файлов
- •Краткие теоретические сведения
- •Варианты индивидуальных заданий
- •Контрольные вопросы
- •Лабораторная работа № 8 Использование графического режима
- •Краткие теоретические сведения
- •Функции подготовки графической системы
- •Варианты индивидуальных заданий
- •Контрольные вопросы
- •Литература
- •Команды вставки и удаления
- •Команды работы с блоками
- •Набор текста программы
- •Компиляция, редактирование связей, запуск программы на выполнение
- •Многофайловая компиляция
- •Отладка программы
- •Учебное издание
Пример использования структур
Вести сведения о студентах учебной группы (не более 50):
- фамилию и имя;
- итоги сдачи экзаменов – три оценки.
В программе рассчитывается средний балл для каждого студента, выполняется поиск по первой букве фамилии. Текст программы может иметь вид:
#include <stdio.h>
#include <string.h>
#include <conio.h>
struct Spisok {
char Fio[20];
int Ot[3];
float S_Bal;
} *sved; // Указатель на структуру
void Vvod(int nom,struct Spisok *sved)
{
printf( "\n Vvedi svedenia %d ", (nom+1));
puts("\n FIO - ") ;
fflush(stdin);
gets(sved->Fio); // Используем операцию косвенной адресации (->)
float s=0;
for(int i=0;i<3;i++)
{
puts("\n Otcenki - "); scanf(“%d”, sved->Ot[i] );
s+=sved->Ot[i];
}
sved->S_Bal=s/3.;
return;
}
void main(void)
{
struct Spisok Stud[50];
int i,N;
char Bukva,Fio_p[20];
clrscr();
puts("\n Vvedi kol-vo < 50 ");
scanf(“%d”,&N);
for(i=0;i<N;i++)
Vvod(i,&Stud[i]); // Вводим поэлементно
puts("\n Список студентов ”);
for(i=0;i<N;i++) // Используем операцию принадлежности (.)
printf("\n %20s %4.2f",Stud[i].Fio,Stud[i].S_Bal);
puts("\n Поиск сведений по первой букве. \n Введите букву ");
scanf(“%c”, &Bukva);
puts("\n Сведения: ");
int kod_p=0;
for(i=0;i<N;i++)
if(Stud[i].Fio[0]= =Bukva)
{
kod_p=1;
printf("\n %20s %4.2f",Stud[i].Fio,Stud[i].S_Bal);
}
if(kod_p==0) puts( "\n Таких НЕТ!");
getch();
}
Варианты индивидуальных заданий
В программах организовать ввод информации о студентах:
- фамилия и инициалы;
- год рождения;
- номер группы;
- оценки за первый семестр: физика, математика, информатика;
- средний балл.
1. Распечатать анкетные данные студентов, сдавших сессию на 4,5.
2. Распечатать анкетные данные студентов-отличников, фамилии которых начинаются с интересующей вас буквы.
3. Распечатать анкетные данные студентов-отличников из интересующей вас группы.
4. Распечатать анкетные данные студентов, фамилии которых начинаются с буквы А, и сдавших математику на 4 и 5.
5. Распечатать анкетные данные студентов, имеющих оценку 3 по физике и оценку 5 по остальным предметам.
6. Распечатать анкетные данные студентов интересующей вас группы. Фамилии студентов начинаются с букв В, Г и Д.
7. Распечатать анкетные данные студентов, не имеющих оценок 3 и 2 по информатике и математике.
8. Вычислить общий средний балл всех студентов и распечатать список студентов со средним баллом выше общего среднего балла.
9. Вычислить общий средний балл всех студентов и распечатать список студентов интересующей вас группы, имеющих средний балл выше общего среднего балла.
10. Распечатать анкетные данные студентов интересующей вас группы, имеющих оценку 2.
11. Распечатать анкетные данные студентов интересующей вас группы, имеющих оценку 5 по информатике.
12. Распечатать анкетные данные студентов, имеющих оценку 4 по физике и оценку 5 по высшей математике.
13. Вычислить общий средний балл студентов интересующей вас группы и распечатать список студентов этой группы, имеющих средний балл выше общего.
14. Распечатать анкетные данные студентов-отличников интересующей вас группы.
15. Распечатать анкетные данные студентов интересующей вас группы, имеющих средний балл выше введенного с клавиатуры.
16. Распечатать анкетные данные студентов интересующей вас группы, имеющих оценку 4 по физике и оценку 5 по высшей математике.
17. Распечатать анкетные данные студентов, упорядоченные по алфавиту.
18. Распечатать анкетные данные студентов, упорядоченные по году рождения.
19. Распечатать анкетные данные студентов, упорядоченные по номеру группы.
20. Распечатать анкетные данные студентов, упорядоченные по среднему баллу.
