- •Основы программирования
- •Содержание
- •Лабораторная работа №1 Линейные и разветвляющиеся вычислительные процессы
- •Краткие теоретические сведения
- •Классификация данных
- •Декларирование объектов
- •Структура программы
- •Константы
- •Операции Операции выражения
- •Арифметические операции
- •Операция присваивания
- •Сокращенная запись операции присваивания
- •X##; - постфиксную.
- •Преобразование типов операндов арифметических операций
- •Операция приведения типа
- •Операции сравнения
- •Логические операции
- •Побитовые логические операции, операции над битами
- •Операция «,» (запятая)
- •Функции вывода информации
- •Функции ввода информации
- •Ввод - вывод потоками
- •Стандартные математические функции
- •Синтаксис операторов языка Си
- •Операция присваивания
- •Условные операторы
- •If (условие ) оператор1;
- •If (условие1) оператор1;
- •Условная операция "? :"
- •Оператор выбора switch
- •Варианты индивидуальных заданий
- •Контрольные вопросы
- •Циклические операторы while и do–while
- •Вложенные циклы
- •Варианты индивидуальных заданий
- •Контрольные вопросы
- •Строки, как одномерные массивы символов
- •Указатели и операции над адресами
- •Операции над указателями (адресная арифметика)
- •Связь указателей и массивов
- •Пример 1: Упорядочить по алфавиту массив строк (не более 20) длиной не более 10 символов в каждой:
- •Варианты индивидуальных заданий
- •Контрольные вопросы
- •Лабораторная работа №4 Многомерные массивы, динамическое распределение памяти
- •Краткие теоретические сведения
- •Массивы указателей
- •Указатели на указатели
- •Динамическое размещение данных
- •Проверить, является ли введенная строка полиндромом (справа-налево читается также как и слева-направо).
- •Варианты индивидуальных заданий
- •Контрольные вопросы
- •Вызов функции.
- •Изменение значений параметров.
- •Область действия переменных
- •Классы памяти.
- •Рекурсивные функции.
- •Операция typedef
- •Указатели на функции
- •Примеры работы с функциями
- •Варианты индивидуальных заданий
- •Контрольные вопросы
- •Декларация структурного типа данных
- •Создание структурных переменных
- •Обращение к полям структур
- •Вложенные структуры
- •Использование typedef
- •Массивы структур
- •Размещение структурных переменных в памяти
- •Пример на использование структур
- •Варианты индивидуальных заданий
- •Контрольные вопросы
- •Лабораторная работа № 7 Файлы в языке с
- •Краткие теоретические сведения
- •Варианты индивидуальных заданий
- •Контрольные вопросы
- •Лабораторная работа № 8 Графический режим работы
- •Kраткие теоретические сведения
- •Варианты индивидуальных заданий
- •Контрольные вопросы
- •Команды вставки и удаления (под блоком понимается выделенное подсветкой подмножество символов)
- •Команды работы с блоками
- •Набор текста программы
- •Компиляция, редактирование связей, запуск программы на выполнение
- •Многофайловая компиляция
- •Отладка программы
- •Использование глобальных переменных, объявленных вне файла
- •Литература
Пример на использование структур
Вести сведения о студентах учебной группы (не более 50):
а) фамилию и имя;
в) итоги сдачи экзаменов – три оценки.
В программе расчитать средний балл для каждого студента, выполнить поиск по первой букве фамилии, поиск нужной записи.
Текст программы может иметь вид:
#include <iostream.h>
#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)
{ cout << "\n Vvedi svedenia " << (nom+1);
cout << "\n FIO - "; gets(sved->Fio);
float s=0;
for(int i=0;i<3;i++) {
cout << "\n Otcenki - "; cin >> 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;
clrscr();
cout << "\n Vvedi kol-vo < 50 "; cin >> N;
for(i=0;i<N;i++) Vvod(i,&Stud[i]);
cout << "\n Spisok Students";
for(i=0;i<N;i++)
printf("\n %20s %4.2f",Stud[i].Fio,Stud[i].S_Bal);
cout << "\n Poisk FIO (bukva) "; cin >> Bukva;
cout << "\n Sveden Students";
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) cout << " Takix HET!";
cout << "\n Poisk zapisi";
Vvod(-1,sved);
kod_p=0;
for(i=0;i<N;i++)
if(memcmp(sved,&Stud[i],sizeof(sved))==0)
{ kod_p=1;
printf("\n %20s %4.2f",Stud[i].Fio,Stud[i].S_Bal);
}
if(kod_p==0) cout << " Takix HET!";
getch();
}
Варианты индивидуальных заданий
Ввести сведения о студентах, содержащие следующую информацию:
- фамилия и инициалы;
- год рождения;
- оценки за первый семестр: физика, математика, информатика;
1. Распечатать список студентов, упорядоченный по алфавиту.
2. Распечатать список студентов, упорядоченный по году рождения.
3. Распечатать список студентов-отличников, упорядоченный по году поступления.
4. Распечатать анкетные данные студентов, сдавших сессию на 4 и 5.
5. Распечатать список студентов, фамилии которых начинаются с буквы Б и их оценки по всем предметам.
6. Распечатать анкетные данные отличников.
7. Распечатать список студентов, фамилии которых начинаются с буквы А и их даты рождения.
8. Распечатать анкетные данные студентов, имеющих оценку 3 в сессию.
9. Распечатать список студентов и их оценки. Фамилии студентов начинаются с букв В и Г.
10. Распечатать фамилии и даты рождения студентов, не имеющих оценок 3.
11. Вычислить общий средний балл всех студентов и распечатать список студентов со средними баллами выше общего среднего балла.
12. Вычислить общий средний балл всех студентов и распечатать список студентов, имеющих средний балл, равный общему среднему баллу.
13. Распечатать анкетные данные студентов, имеющих оценку 2.
14. Распечатать анкетные данные студентов, имеющих оценку 5 по информатике.
15. Распечатать анкетные данные студентов, имеющих оценку 4 по физике и оценку 5 по высшей математике.