Индивидуальные задания к лабораторной работе № 4

Разработать программу на языке Си для следующих заданий.

Для второго задания допускается закрытие и повторное открытие файла в измененном режиме, если студентсчитает, что это требуется для выполнения задания.




Номер Текст задания
Вариант 1
1. Получить от пользователя строку текста и вставить вместо каждого пробела восклицательный знак. Повторять до тех пор, пока не встретится строка завершающаяся словом quit
2. Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление). (В файле должно быть не менее 30 строк). Подсчитать количество слов в каждой строке текста. Записать в новый файл все строки, закончив их полученным числом.
Например: Это пример строки текста в старом файле (7)
3.

Описать структуру с именем AEROFLOT, содержащую следующие поля:

NUMR – номер рейса (целое число);
COST – стоимость билета (число с плавающей точкой);
NAZN – название пункта назначения рейса;
TIP – тип самолета.

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив AIRPORT, состоящий из семи элементов типа AEROFLOT;
  • вывод на экран номеров рейсов и типов самолетов, вылетающих в пункт назначения, название которого совпало с названием, введенным с клавиатуры;
  • если таких рейсов нет, выдать на дисплей соответствующее сообщение.
Вариант 2
1. Получить от пользователя строку текста и подсчитать количество символов в тексте. Вывести полученное значение на экран. Повторять до тех пор, пока не встретится строка завершающаяся словом quit
2. Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление). (В файле должно быть не менее 30 строк). Вставить перед каждым восклицательным знаком вопросительный. Записать измененные строки в новый файл.
3.

Описать структуру с именем WORKER, содержащую следующие поля:

SALARY – оклад;
YEAR – год поступления на работу. NAME – фамилия и инициалы работника;
POS – название занимаемой должности;

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив TABL, состоящий из десяти структур типа WORKER;
  • вывод на дисплей фамилий работников, чей стаж работы в организации превышает значение, введенное с клавиатуры;
  • если таких работников нет, вывести на дисплей соответствующее сообщение.
Вариант 3
1. Получить от пользователя строку текста и подсчитать количество точек в строке. Повторять до тех пор, пока не встретится строка завершающаяся словом quit
2. Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление). (В файле должно быть не менее 30 строк). Променять местами четные и нечетные строки текста. Записать измененные строки в новый файл.
3.

Описать структуру с именем TRAIN, содержащую следующие поля:

NUMR — номер поезда;
TIME — время отправления;
NAZN — название пункта назначения;
OTPR - название пункта отправления.

Написать программу, выполняющую следующие действия;

  • ввод с клавиатуры данных в массив RASP, состоящий из шести элементов типа TRAIN;
  • вывод на экран информации о поездах, направляющихся в пункт, название которого введено с клавиатуры;
  • если таких поездов нет, выдать на дисплей соответствующее сообщение.
Вариант 4
1. Получить от пользователя строку текста и Подсчитать количество пробелов в строке. Вывести полученное значение на экран. Повторять до тех пор, пока не встретится строка завершающаяся словом quit
2. Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление). (В файле должно быть не менее 30 строк). Найти самую короткое предложение текста и заменить её фразой "С новым годом!". Записать измененный текст в новый файл.
3.

Описать структуру с именем MARSH, содержащую следующие поля:

NUMER – номер маршрута;
TIME – среднее время в пути;
BEGST – название начального пункта маршрута;
TERM – название конечного пункта маршрута;

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив TRAFIC, состоящий из восьми элементов типа MARSH;
  • вывод на экран информации о маршрутах, которые начинаются или кончаются в пункте, название которого введено с клавиатуры;
  • если таких маршрутов нет, выдать на дисплей соответствующее сообщение.
Вариант 5
1. Получить от пользователя строку текста и подсчитать количество двойных пробелов. Вывести полученное значение на экран. Повторять до тех пор, пока не встретится строка завершающаяся словом quit
2. Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление). (В файле должно быть не менее 30 строк). Найти самую длинную строку текста и заменить её пустой строкой. Записать измененный текст в новый файл.
3.

Описать структуру с именем NOTE, содержащую следующие поля:

NAME — фамилия, имя;
TELE — номер телефона;
GROUP - категория, к которой относится контакт (семья, работа и т.д.)
BDAY — день рождения (массив из трех чисел).

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив BLOCKNOTE, состоящий из восьми элементов типа NOTE;
  • вывод на экран информации о человеке, номер телефона которого введен с клавиатуры;
  • если такого нет, выдать на дисплей соответствующее сообщение.
Вариант 6
1. Получить от пользователя строку текста и выделить из строки все числа. Повторять до тех пор, пока не встретится строка завершающаяся словом quit
2. Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление). (В файле должно быть не менее 30 строк). Поменять местами самую длинную и самую короткую строки текста. Записать измененный текст в новый файл.
3.

Описать структуру с именем ZNAK, содержащую следующие поля:

TIME – время рождения (массив из двух чисел);
BDAY – день рождения (массив из трех чисел)
NAME – фамилия, имя;
ZODIAC – знак Зодиака.

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив BOOK, состоящий из восьми элементов типа ZNAK;
  • вывод на экран информации о человеке, чья фамилия введена с клавиатуры;
  • если такого нет, выдать на дисплей соответствующее сообщение.
Вариант 7
1. Получить от пользователя строку текста и найти самое длинное слово текста. Повторять до тех пор, пока не встретится строка завершающаяся словом quit
2. Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление). (В файле должно быть не менее 30 строк). Добавить в начало каждой строки текста её номер и пробел. Записать измененный текст в новый файл.
3.

Описать структуру с именем ORDER, содержащую следующие поля:

PLAT – расчетный счет плательщика ();
POL –расчетный счет получателя;
DESCRP – описание назначения платежа;
SUMMA – перечисляемая сумма в руб.

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив SPISOK, состоящий из восьми элементов типа ORDER;
  • вывод на экран информации о сумме, снятой с расчетного счета плательщика, введенного с клавиатуры;
  • если такого расчетного счета нет, выдать на дисплей соответствующее сообщение.
Вариант 8
1. Получить от пользователя строку текста и Подсчитать количество восклицательных знаков в строке. Повторять до тех пор, пока не встретится строка завершающаяся словом quit
2. Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление). (В файле должно быть не менее 30 строк). Записать в конец этого же файла таблицу с указанием трех наиболее часто встречающихся слов и количества их повторений в строке.
3.

Описать структуру с именем WIZARD, содержащую следующие поля:

MANA – количество магической маны;
LEADER – переключатель о статусе героя: является ли лидером группы;
HITPOINT – запас жизненной силы;
NAME – имя героя.

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив TEAM, состоящий из восьми элементов типа WIZARD;
  • вывод на экран информации о герое с максимальным уровнем маны;
  • вывод на экран информации о герое с именем, введенным с клавиатуры. Если героя с такми именем нет, то выводится информация о лидере группы.
Вариант 9
1. Получить от пользователя строку текста и Определить, содержит ли строка хотя бы пару соседних одинаковых слов. Повторять до тех пор, пока не встретится строка завершающаяся словом quit
2. Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление). (В файле должно быть не менее 30 строк). Записать в новый файл этот же текст и таблицу с указанием, сколько раз встретилась в каждой строке указаная пользователем буква латинского алфавита и пробел
3.

Описать структуру с именем TRACK, содержащую следующие поля:

MODEL – марка боевой машины;
SEATS – количество мест для размещения солдат;
GUN_Size – калибр главного орудия;
ARMOR – толщина брони в мм.

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив SQUADRON, состоящий из восьми элементов типа TRACK;
  • вывод на экран информации о боевой машине с минимальной толщиной брони;
  • вывод на экран информации о боевой машине с введенным с клавиатуры калибром главного орудия. Если такой машины нет, то выводится информация о машине с наиболее близким к введенному значению калибром орудия.
Вариант 10
1. Получить от пользователя строку текста и Определить общую длину слов на нечётных позициях в строке. Повторять до тех пор, пока не встретится строка завершающаяся словом quit
2. Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление). (В файле должно быть не менее 30 строк). Вывести в конец этого же файла таблицу с указанием количества слов, начинающихся с одной и той же буквы.
3.

Описать структуру с именем CHESSPEICE, содержащую следующие поля:

COST – "стоимость" фигур в пешках;
POSITION – номер клетки, в которой находится фигура;
COLOR – цвет фигуры;
NAME – название фигуры.

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив CHESSBOARD, состоящий из 32 элементов типа CHESSPEICE; (ввести не менее 10 фигур с соблюдением правил игры в шахматы)
  • вывод на экран информации о всех фигурах указанного пользователем цвета;
  • вывод на экран информации о фигуре, расположенной в указанной пользователем клетке. Если в указанной клетке доски фигуры нет, то выводится информация о фигуре из ближайшей занятой клетки.
Вариант 11
1. Получить от пользователя строку текста и Определить количество знаков, не являющихся буквами или числами. Повторять до тех пор, пока не встретится строка завершающаяся словом quit
2. Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление). (В файле должно быть не менее 30 строк). Перевести в верхний регистр все слова четных строк. И записать результат в новый файл.
3.

Описать структуру с именем PLANET, содержащую следующие поля:

NAME – название планеты;
RADIUS_PL– Радиус планеты;
RADIUS_ORB – Радиус орбиты;
SATELLITES_QNT – количество спутников, как естественных, так и искусственных;
SAT_NAMES – массив с названиями спутников, как естественных, так и искусственных;

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив STAR_SYSTEM из N элементов типа PLANET, описывающий состав звездной системы; (ввести не менее 5 планет с указанием спутников как минимум для трех из них)
  • вывод на экран информации о всех планетах с одинаковым количеством спутников;
  • вывод на экран информации о планетах, радиус орбиты которых находится в указанном пользователем диапазоне. Если в указанной диапазоне нет планет, то выводится информация о всей звездной системе.
Вариант 12
1. Получить от пользователя строку текста и Перевести в верхний РЕГИСТР символы всех слов на четных позициях. Повторять до тех пор, пока не встретится строка завершающаяся словом quit
2. Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление). (В файле должно быть не менее 30 строк). Определить количество предложений в тексте, учитывая, что предложение заканчивается точкой, вопросительным или восклицательным знаком. Вывести сводную таблицу в этот же файл.
3.

Описать структуру с именем BUTTON, содержащую следующие поля:

TEXT – Текст, расположенный на кнопке;
WIDTH – Ширина кнопки;
HEIGHT – Высота кнопки;
RESULT – модальный результат нажатия кнопки, то есть каким действиям приводит: Close (закрыть), Click (щелчок), Pressed (Нажата), Released (отжата) и т.д.;

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив WINDOW из N элементов типа BUTTON, описывающий диалоговое окно с кнопками; (ввести описание не менее 10 кнопок с указанием всех параметров)
  • вывод на экран информации о всех кнопках одинаковой ширины или длины (в зависимости от выбора пользователя);
  • вывод на экран информации о кнопках, модальный результат которых соответствует введенному пользователем значению.
Вариант 13
1. Получить от пользователя строку текста и определить, сколько вопросительных знаков, в строке Повторять до тех пор, пока не встретится строка завершающаяся словом quit
2. Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление). (В файле должно быть не менее 30 строк). Добавить в начало каждого предложения текста его номер и пробел. Вывести результат в новый файл.
3.

Описать структуру с именем PLANET, содержащую следующие поля:

NAME – название планеты;
RADIUS_PL– Радиус планеты;
RADIUS_ORB – Радиус орбиты;
SATELLITES_QNT – количество спутников, как естественных, так и искусственных;
SAT_NAMES – массив с названиями спутников, как естественных, так и искусственных;

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив STAR_SYSTEM из N элементов типа PLANET, описывающий состав звездной системы; (ввести не менее 5 планет с указанием спутников как минимум для трех из них)
  • вывод на экран информации о всех планетах с одинаковым количеством спутников;
  • вывод на экран информации о планетах, радиус орбиты которых находится в указанном пользователем диапазоне. Если в указанной диапазоне нет планет, то выводится информация о всей звездной системе.
Вариант 14
1. Получить от пользователя строку текста и Променять местами первое и последнее слова в строке. Повторять до тех пор, пока не встретится строка завершающаяся словом quit
2. Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление). (В файле должно быть не менее 30 строк). Определить количество пробелов в нечётных строках текста Вывести сводную таблицу в конце этого же файла.
3.

Описать структуру с именем ZNAK, содержащую следующие поля:

TIME – время рождения (массив из двух чисел);
BDAY – день рождения (массив из трех чисел)
NAME – фамилия, имя;
ZODIAC – знак Зодиака.

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив BOOK, состоящий из восьми элементов типа ZNAK;
  • вывод на экран информации о человеке, чья фамилия введена с клавиатуры;
  • если такого нет, выдать на дисплей соответствующее сообщение.
Вариант 15
1. Получить от пользователя строку текста и Променять местами первое слово, начинающееся с гласной бьуквы и последнее слово, начинающееся с согласной буквы. Повторять до тех пор, пока не встретится строка завершающаяся словом quit
2. Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление). (В файле должно быть не менее 30 строк). Выделить все числа из текста и подсчитать их сумму и среднее. Вывести результат в конце этого же файла.
3.

Описать структуру с именем WORKER, содержащую следующие поля:

SALARY – оклад;
YEAR – год поступления на работу. NAME – фамилия и инициалы работника;
POS – название занимаемой должности;

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив TABL, состоящий из десяти структур типа WORKER;
  • вывод на дисплей фамилий работников, чей стаж работы в организации превышает значение, введенное с клавиатуры;
  • если таких работников нет, вывести на дисплей соответствующее сообщение.