- •Предисловие
- •Лабораторная работа №1 “ Простые (скалярные) типы данных языка Си. Составление и отладка простейшей Си-программы”
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Лабораторная работа №3 “ Реализация циклов в языке Си ”
- •Вариант 36
- •Вариант 37
- •Вариант 38
- •Вариант 39
- •Вариант 11
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 2
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 8
- •Вариант 9
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 4
- •Вариант 5
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Лабораторная работа №8 “ Работа со структурами ”
- •Вариант 22
- •Вариант 23
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Лабораторная работа №9 “ Потоки ввода/вывода в Си ”
- •Содержание
Вариант 4
Для заданных натуральных чисел n1 и n2 (таких, что n2>n1) найти среди чисел от n1 до n2 близнецы. (Близнецами называются два таких простых числа, разность которых по модулю равна 2. Например, близнецами являются числа 11 и 13, 17 и 19.)
Вариант 5
В заданном двумерном массиве все числа различны. В каждой строке выбирается минимальный элемент, затем среди этих чисел выбирается максимальное число. Определить номер строки и номер столбца, где находится выбранное число.
Задания III уровня сложности
Вариант 1
Японская радиокомпания провела опрос 250 радиослушателей по вопросу: "Какое животное Вы связываете с Японией и японцами?". Каждый называл по одному животному, причем, заранее неизвестно, какое. Определить, какое животное наиболее часто встречается среди ответов. Какова доля (в %) наиболее часто встречающегося ответа среди общего их числа? Для решения задачи описать следующие функции:
- по заданному массиву строк (среди которых много повторяющихся) сформировать новый массив строк, содержащий только по одному представителю из исходного списка;
- по заданным двум массивам строк определить такую строку из второго массива, которая чаще всего встречается в первом массиве.
Вариант 2
Матрица, симметричная относительно главной диагонали, задана верхним треугольником в виде одномерного массива по строкам. Восстановить исходную квадратную матрицу и напечатать ее.
Вариант 3
Дана целочисленная матрица. Найти номера строк, элементы каждой из которых образуют монотонную последовательность (монотонно убывающую или монотонно возрастающую). Результат получить в виде одномерного массива.
Лабораторная работа №8 “ Работа со структурами ”
Методические указания
Структурный тип – это тип данных, определяемый программистом. Имя новому типу следует давать такое, чтобы оно отражало содержание объекта, которому соответствует тип.
Если поле структуры представляет собой указатель на участок динамической памяти, то при создании структурной переменной следует позаботиться о выделении памяти для динамического объекта.
Описание шаблона структуры (или, другими словами, структурного типа) необходимо сделать на внешнем уровне, если имя этого типа должно быть доступно в заголовках (прототипах) функций.
Для контроля правильности работы программы во всех задачах практикума необходимо предусмотреть функцию вывода на экран исходных массивов структур.
В задачах, требующих создания нового динамического массива, предусмотреть ситуацию, когда формируемый массив пуст.
Пример
В соревнованиях по фигурному катанию участвуют пары из разных городов.
Имеются следующие сведения о каждой паре:
- фамилии, имена партнеров;
- город, откуда прибыла данная пара;
- оценки, полученные в обязательной программе (всего 10 судей, каждый судья выставляет паре по одной оценке).
Подсчитать процент иногородних пар (допустим, что соревнования проходят в городе N).
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
#include <windows.h>
#include <wincon.h>
#define CB 10 //Число судей
struct Sport
{
char* name;
char* town;
int ball[CB];
};
void print_sp(struct Sport* sp, int n);
double procent(struct Sport* sp, int n, char*t);
void main()
{
SetConsoleOutputCP(1251);
const int n=5;
struct Sport spms[n]=
{
{"Ivanov Ivanova", "Moscow", {5,6,5,4,5,6,6,8,3,2}},
{"Petrov Petrova", "Kiev", {4,7,7,8,9,10,6,6,7,3}},
{"Sidorov Sidorova", "Tomsk", {4,6,7,8,9,10,6,7,7,2}},
{"Kotov Kotova", "Lipetsk", {2,4,6,7,8,9,5,6,7,3}},
{"Frolov Frolova", "Moscow", {5,7,5,7,5,4,6,8,3,2}}
};
print_sp(spms,n);
char str[]="Moscow";
double pri;
pri=procent(spms,n,str);
printf("Процент иногородних пар = %lf",pri);
}
/*
Функция выводит на экран массив элементов типа struct Sport.
*/
void print_sp(struct Sport* sp,int n)
{
int i,j;
for(i=0;i<n;i++)
{
printf("%-18s%-10s",sp[i].name,sp[i].town);
for(j=0;j<CB;j++)
printf("%2d",sp[i].ball[j]);
puts("");
}
}
/*
Функция возвращает процент иногородних пар.
sp – исходный массив структур из n элементов;
t – строка, содержащая название города, в котором проходят соревнования.
*/
double procent(struct Sport* sp,int n, char*t)
{
int count = 0;
int i;
for(i=0;i<n;i++)
if(strcmp(sp[i].town, t) != 0)
count++;
double pr;
pr=((double)count/n)*100;
return pr;
}
Задания для самостоятельного выполнения.
Задания I уровня сложности
Вариант 1
В редакции телепрограмм имеются следующие сведения о передачах, выходящих в эфир в течение суток:
название передачи;
жанр передачи (например, художественный фильм, реклама; информационная программа, детская передача и т.д.);
время выхода в эфир (начало - часы, минуты, конец - часы, минуты).
Подсчитать количество художественных фильмов, показанных за эти сутки.
Вариант 2
В редакции телепрограмм имеются следующие сведения о передачах, выходящих в эфир в течение суток:
название передачи;
жанр передачи (например, художественный фильм, реклама; информационная программа, детская передача и т.д.);
время выхода в эфир (начало - часы, минуты, конец - часы, минуты).
Подсчитать суммарную длительность рекламы за сутки.
Вариант 3
В таблице собраны следующие сведения о государствах Африки:
название государства;
территория (в тыс. кв. км);
численность населения (в млн. чел.);
имеется ли морская граница (да, нет);
столица.
Подсчитать количество стран, численность населения которых превышает заданную величину.
Вариант 4
В таблице собраны следующие сведения о государствах Африки:
название государства;
территория (в тыс. кв. км);
численность населения (в млн. чел.);
имеется ли морская граница (да, нет);
столица.
Среди государств, имеющих морскую границу, определить то, численность населения которого максимальна.
Вариант 5
В таблице собраны следующие сведения о государствах Африки:
название государства;
территория (в тыс. кв. км);
численность населения (в млн. чел.);
имеется ли морская граница (да, нет);
столица.
Среди государств, имеющих морскую границу, определить самое большое по занимаемой территории.
Вариант 6
В магазине детских товаров есть сведения об имеющихся в продаже игрушках:
название игрушки (например, кукла, мяч, конструктор и т.п.);
адрес завода-изготовителя (город, улица, номер дома);
стоимость игрушки (в рублях);
возрастная категория, на которую ориентирована данная игрушка (например, от 2 до 5 лет);
может ли игрушка использоваться для спортивных игр (да или нет).
Определить суммарную стоимость игрушек, предназначенных для спортивных игр (по одной каждого наименования).
Вариант 7
В соревнованиях по фигурному катанию участвуют пары из разных городов. Имеются следующие сведения о каждой паре:
фамилии, имена партнеров;
город, откуда прибыла данная пара;
оценки, полученные в обязательной программе (всего 10 судей, каждый судья выставляет паре по одной оценке).
Определить количество пар из города N, участвующих в соревновании.
Вариант 8
В школьной администрации имеется следующая информация о каждом выпускнике 11 классов:
фамилия, имя, отчество;
дата рождения (год, месяц, число);
домашний адрес (улица, дом, квартира);
оценки аттестата о среднем образовании.
Определить, есть ли в этом списке выпускник Белкин Сергей Ильич.
Вариант 9
Каталог подписных изданий содержит:
почтовый индекс издания;
название издания;
периодичность издания;
подписную цену на 12 месяцев.
Подсчитать количество изданий, подписная цена которых превышает заданную величину: С рублей в год.
Вариант 10
Каталог подписных изданий содержит:
почтовый индекс издания;
название издания;
периодичность издания;
подписную цену на 12 месяцев.
Определить название самого дешевого издания.
Вариант 11
Каталог подписных изданий содержит:
почтовый индекс издания;
название издания;
периодичность издания;
подписную цену на 12 месяцев.
Определить, есть ли в каталоге журнал “За рулем”. Если да, то сообщить его индекс и стоимость подписки на год.
Вариант 12
Имеются следующие сведения о государствах:
название государства;
государственный язык;
площадь территории;
численность населения (в млн. чел.);
денежная единица;
столица.
Подсчитать количество стран, государственный язык которых - английский.
Вариант 13
Имеются следующие сведения о государствах:
название государства;
государственный язык;
площадь территории;
численность населения (в млн. чел.);
денежная единица;
столица.
Определить самое большое по численности населения государство (сообщить все имеющиеся сведения о нём).
Вариант 14
Расписание поездов содержит следующие сведения:
номер поезда;
станция назначения;
расстояние до станции назначения;
время отправления (часы, минуты);
время прибытия в конечный пункт (часы, минуты);
время в пути.
Определить поезд, имеющий самое длительное время пути (сообщить его номер и станцию назначения).
Вариант 15
Расписание поездов содержит следующие сведения:
номер поезда;
станция назначения;
расстояние до станции назначения;
время отправления (часы, минуты);
время прибытия в конечный пункт (часы, минуты);
время в пути.
Подсчитать количество таких поездов до Санкт-Петербурга, для которых время в пути не превышает заданного значения.
Вариант 16
Расписание поездов содержит следующие сведения:
номер поезда;
станция назначения;
расстояние до станции назначения;
время отправления (часы, минуты);
время прибытия в конечный пункт (часы, минуты);
время в пути.
Определить, имеется ли поезд до Москвы, отправляющийся не раньше 6 и не позднее 10 часов утра. Если да, то сообщить все имеющиеся сведения о нём. (Если таких поездов несколько, то о любом из них.)
Вариант 17
Имеется список владельцев автомобилей: фамилия, имя, отчество; марка автомобиля; его цвет; гос. номер. Подсчитать количество владельцев автомобилей ВАЗ белого цвета.
Вариант 18
Имеется информация о телевизорах: фирма-изготовитель; размер экрана в дюймах; стоимость в рублях. Определить, имеется ли в списке информация о телевизоре стоимостью не более 1.5 тыс. рублей и размером экрана не менее 17 дюймов. Если да, то сообщить все сведения о нём.
Вариант 19
В участковой избирательной комиссии имеются сведения о ходе голосования:
фамилия, имя, отчество избирателя;
домашний адрес (улица, дом, квартира);
номер и серия паспорта;
год рождения;
отметка о том, проголосовал или нет избиратель к данному моменту времени (да или нет).
Вычислить процент избирателей, проголосовавших к данному моменту времени, среди лиц, моложе 35 лет.
Вариант 20
У диспетчера аэропорта имеются следующие сведения о рейсах самолетов:
номер рейса;
тип самолета;
аэропорт назначения;
дни вылета (например: ежедневно; по четным; по выходным);
время вылета;
расстояние до аэропорта назначения в км;
стоимость билета.
Среди всех рейсов до Санкт-Петербурга определить тот, стоимость билета которого минимальна. Сообщить все имеющиеся сведения о нём.
Вариант 21
В участковой избирательной комиссии имеются сведения о ходе голосования:
фамилия, имя, отчество избирателя;
домашний адрес (улица, дом, квартира);
номер и серия паспорта;
год рождения;
отметка о том, проголосовал или нет избиратель к данному моменту времени (да или нет).
Определить, сколько избирателей, проживающих на улице Зегеля, приняли участие в голосовании к данному моменту времени.
