- •Лабораторные работы. Сборник задач.
- •Оглавление
- •Часть 1. Лаборатоные работы
- •Работа со структурами и объединениями …………………………………….91
- •3 Задача
- •4 Задача
- •5 Задача
- •6 Задача
- •Дополнительное условие:использование цикла с предусловием.
- •1 Задача
- •2 Задача
- •Дополнительное условие: программа написана без использования функции.
- •Дополнительное условие: программа написана с использованием функций.
- •3 Задача
- •Дополнительное условие: программа написана без использования функции.
- •Дополнительное условие: программа написана с использованием функции.
- •4 Задача
- •Дополнительное условие: программа написана без использования функции
- •Дополнительное условие: программа написана с использованием функции.
- •Самостоятельная работа
- •Лабораторная работа №3
- •Самостоятельная работа
- •1 Задача
- •2 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •Лабораторная работа №6
- •1 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •1 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •4 Задача
- •Синтаксический анализатор
- •Самостоятельная работа
- •1 Задача
- •2 Задача
- •3 Задача
- •Работа с каталогами
- •Самостоятельная работа
- •1 Задача
- •2 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •1 Задача
- •2 Задача
- •1 Задача Реализовать очередь, состоящую из целых чисел
- •Комментарий:
- •2 Задача
- •1 Задача
- •Идеально-сбалансированные деревья
- •1 Задача
- •2 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •1 Задача
- •1 Задача
- •1 Уровень сложности
- •2 Уровень сложности
- •3 Уровень сложности
- •1 Уровень сложности.
- •2 Уровень сложности
- •3 Уровень сложности
- •1 Уровень сложности
- •Работа с несколькими массивами
- •Преобразование массива
- •Изменение элементов массива
- •2 Уровень сложности Формирование массива и вывод его элементов
- •Анализ элементов массива
- •Преобразование массива
- •Изменение элементов массива
- •Удаление и вставка элементов
- •Серии целых чисел
- •3 Уровень сложности Множества точек на плоскости
- •1 Уровень сложности
- •2 Уровень сложности
- •3 Уровень сложности
- •1 Уровень сложности
- •2 Уровень сложности
- •3 Уровень сложности
- •1 Уровень сложности
- •2 Уровень сложности
- •3 Уровень сложности
- •Not простое_логическое
- •(Простое_логическое знак_операции простое_логическое)
- •Построить синтаксический анализатор для понятия предложение.
- •1 Уровень сложности
- •2 Уровень сложности
- •1 Уровень сложности
- •Примеры:
- •Двусвязные списки
- •1 Уровень сложности
- •2 Уровень сложности
- •3 Уровень сложности
Самостоятельная работа
Дано натуральное число n. Пусть
Вычислить
Лабораторная работа № 4
Классы памяти
Цель: закрепление на практике работы со статическими переменными и статическими функциями.
Методические рекомендации: лабораторная работа рассчитана на 2 часа и состоит из анализа двух задания и выполнения самостоятельной работы.
Необходимый уровень знаний:
работа с функциями.
1 Задача
Цель: работа со статическими переменными с блочной областью видимости.
Распечатать значения автоматической и статической переменной, которые определены в функции.
Дополнительное условие: функция вызывается в цикле в теле главной программы.
#include<stdio.h>
void trystat(void);
int main(void)
{
int count;
for (count = 1; count<=3; count++)
{
printf("Здесь итерации %d:\n",count);
trystat();
}
return0;
}
// функция приращения значения каждой переменой после вывода на экран их значений
void trystat(void)
{
intfade= 1;
// переменная запоминает состояние, связанное с увеличение значения на 1
static int stay = 1;
printf("fade = %d è stay = %d\n", fade++, stay++);
}
2 Задача
Цель: работа со статической переменной с внешним связыванием.
Задача-шутка. Определить сколько весит бочонок с ромом. Переменную, в которой хранится вес бочонка с ромом и функцию для считывания нового значения описать в другом файле.
// заголовочный файл
Extern.cpp
#include <stdio.h>
// внешнее объявление переменной
externintunits= 0;
void critic(void)
{
printf("Тебе не повезло! Попробуй еще раз.\n");
scanf("%d", &units);
}
// заголовочный файл
Exstern1.cpp
intmain()
{
// повторное объявление переменной
extern int units;
printf("Сколько футов весит бочонок рома?\n");
scanf("%d", &units);
while(units !=56)
critic();
printf("Нужно это поискать!\n");
return0;
}
Самостоятельная работа
Изменить вторую программу таким образом, чтобы вычислялось количество попыток пользователя отгадать результат. Переменная, в которой должно хранится количество попыток, должна быть описана как статическая переменная с блочной областью видимости.
Лабораторная работа №5
Указатели и одномерные массивы
Цель: применение на практике знаний работы с указателями. Понятие адреса, адресная арифметика. Работа с массивом фиксированной длины. Выделение памяти под массив в динамической области. Указатели и одномерные массивы.
Методические рекомендации: лабораторная работа рассчитана на 2 часа и состоит из анализа трех заданий и выполнения самостоятельной работы.
Обязательное зачетное задание.
Необходимый уровень знаний:
понятие указателя;
адресная арифметика;
одномерные массивы;
связь одномерных массивов и указателей.
1 Задача
Цель: инициализация указателя адресом.
#include <stdio.h>
int main(){
int x=5;
// инициализация адресом переменной x
int *y = &x;
printf("Znachenie ykazatelya: %d\n\n", *y);
printf("Prisvoennii ykazatelu adress peremennoi: %d \n\n", y);
return0;
}
2 Задача
Выделение памяти для переменной-указателя. Присваивание значения переменной, используя указатель.
Дополнительное условие: связь указателей с одномерными массивами.
#include <stdio.h>
#include <malloc.h>
intmain()
{
// указатель на целую переменную
int*y;
// выделение участка динамической памяти размеромsizeof(int)
y = (int*)malloc(sizeof(int));
// увеличение значения переменнойyв 10 раз
*y=10;
printf("There are : %d \n, %d \n", y,*y);
// освобождение памяти
free(y);
return0;}