Лабораторная работа №1 по СИ, программирование ИУ7

Лабораторная работа 1: Лабораторная работа №1 по СИ вариант 23

Описание

Целью лабораторной работы является знакомство студента с инструментарием для создания, отладки и сопровождения программ, написанных на языке программирования Си. Студент должен получить и закрепить на практике следующие знания и умения:
  1. Умение компилировать программу из командной строки в рамках однофайлового проекта.
  2. Умение работать в интегрированной среде разработки на примере Qt Creator, в том числе
    (a) создавать проект;
    (b) настраивать различные варианты сборки и очистки проекта;
    (c) отлаживать программу.
  3. Умение декомпозировать задачи на подзадачи.
  4. Умение имплементировать решения подзадач в виде «чистых» функций.
  5. Умение задавать ограничения на входные данные и планировать процесс обработки ошибочных ситуаций.
  6. Умение готовить тестовые данные и оценивать полноту оных.
Первая часть
Входные данные вводятся, а выходные выводятся строго в том порядке, в котором они встречаются в задании. Вариант для каждой задачи определяется отдельно, по умолчанию по кольцу¹, но может быть изменён преподавателем на его усмотрение.
Помните, что кодируется не задача, а её решение, которое необходимо иметь до того, как Вы сели за клавиатуру. Попробуйте поступить следующим образом:
  1. Выделите в задаче входные и выходные данные. Обычно это те данные, которые предлагается ввести самостоятельно и требуется распечатать соответственно.
  2. Найдите однозначную зависимость между входными и выходными данными, иначе говоря, решите задачу аналитически.
  3. Выберите типы для представления данных.
  4. Мысленно разделите решение на три блока — блок ввода, блок расчёта, блок вывода; в первом закодируйте ввод и, если необходимо, проверку на валидность всех входных данных; во втором запишите последовательность действий для вычисления выходных данных по входным; в третьем реализуйте распечатку выходных данных на экран.
Для задач первой части первой лабораторной работы можно считать, что пользователь всегда вводит только валидные данные, никаких проверок ввода совершать не нужно.
  1. Познакомьтесь с сообщениями, которые выдаёт компилятор во время компиляции программы с синтаксическими ошибками:
    (a) Попытайтесь скомпилировать программу из задачи №1, которая заведомо содержит синтаксические ошибки.
    (b) Изучите выдачу компилятора. Какая информация помогает вам понять, к какой строке исходной программы относится сообщение об ошибке?
    (c) Исправьте ошибки. В силу специфики работы компилятора исправлять ошибки рекомендуется строго по одной и по порядку обнаружения с последующей попыткой компиляции после каждого исправления.
  2. Познакомьтесь с интегрированной средой разработки на примере QT Creator. В результате знакомства Вы должны уметь:
    (a) Создавать проект, настраивать этапы сборки и очистки проекта, запуск приложения.
    (b) Анализировать сообщения об ошибках компиляции; знать, где посмотреть сообщения об ошибках, выданные самим компилятором.
    (c) Использовать отладчик: выполнять программу в пошаговом режиме; устанавливать точки останова и условия их срабатывания; работать с переменными.
Задача №2
  1. Принять с клавиатуры координаты xₐ, yₐ, x_b, y_b, x_c, y_c треугольника abc на плоскости. Найти и вывести на экран периметр P треугольника.
Задача №3
  1. С клавиатуры вводятся величины начальной скорости v₀, ускорения *a* и времени *t* равноускоренного прямолинейного движения тела. Найти и вывести на экран перемещение S.
Задача №4
  1. С клавиатуры задаётся время в секундах. Перевести в часы, минуты, секунды и вывести на экран.
Вторая часть
Входные данные вводятся, а выходные выводятся строго в том порядке, в котором они встречаются в задании.
Начиная с пятой задачи, следует проверять валидность входных данных. Перечень и примеры проверок Вы можете найти в методических указаниях в кафедральном moodle.
Начиная с пятой задачи, следует отслеживать полноту тестовых данных с помощью утилиты gcov. Подробные методические указания Вы можете найти в кафедральном moodle.
При реализации каждой из задач второй части Вам необходимо выделить, по крайней мере, одну осмысленную функцию.
Задача №5
  1. Составить программу для печати разложения на простые множители заданного натурального числа *n*. При *n* = 1 ничего не печатать.
Задача №6
  1. С клавиатуры задаются координаты точек x_q, y_q, x_r, y_r отрезка qr и координаты произвольной точки x_p, y_p. Определить, не принадлежит или принадлежит точка отрезку, и вывести на экран 0 или 1 соответственно.
Задача №7
Приняв с клавиатуры *x* и ε, 0 < ε ≤ 1, вывести на экран вычисленное с точностью² ε приближённое значение s(x) и точное значение f(x) функции *f*, абсолютную Δ и относительную δ погрешности:
Δ=∣f(x)−s(x)∣,δ=∣f(x)−s(x)∣∣f(x)∣.Δ=∣f(x)−s(x)∣,δ=∣f(x)∣∣f(x)−s(x)∣​.
²Накопление суммы следует выполнять до тех пор, пока очередной член ряда по абсолютной величине не окажется меньше заданной ε.
  1. (∀x:∣x∣<1) f(x)=1(1+x)3, s(x)=1−2⋅3⋅x2+3⋅4⋅x22−4⋅5⋅x32+5⋅6⋅x42+…(∀x:∣x∣<1) f(x)=(1+x)31, s(x)=1−22⋅3⋅x+23⋅4⋅x2−24⋅5⋅x3+25⋅6⋅x4+…
Задача №8
Если во время выполнения программы в этой задаче ошибок не было, вывод результата следует начинать с сообщения «Result: », за которым выводить результат вычислений.
В случае возникновения ошибочной ситуации вывод следует начинать с сообщения «Error: », за которым должно следовать описание ошибочной ситуации.
  1. Вводятся беззнаковое целое число длиной 4 байта *a* и целое число *n*. Числа вводятся в десятичной системе счисления. Необходимо циклически сдвинуть значение переменной *a* на *n* позиций влево. Результат вывести в двоичной системе счисления.
Задача №9
Приняв с клавиатуры по концевой признак до первого отрицательного числа элементы непустой последовательности неотрицательных чисел *x*, вычислить и вывести на экран значение g(x).
  1. g(x)=1n(1+x1+2+x2+⋯+n+xn)g(x)=n1(1+x1+2+x2+⋯+n+xn)
Показать/скрыть дополнительное описание

Целью лабораторной работы является знакомство студента с инструментарием для создания, отладки и сопровождения программ, написанных на языке программирования Си. Студент должен получить и закрепить на практике следующие знания и умения: Умение компилировать программу из командной строки в рамках однофайлового проекта. Умение работать в интегрированной среде разработки на примере Qt Creator, в том числе (a) создавать проект; (b) настраивать различные варианты сборки и очистки проекта; (c) отлаживать программу. Умение декомпозировать задачи на подзадачи. Умение имплементировать решения подзадач в виде «чистых» функций. Умение задавать ограничения на входные данные и планировать процесс обработки ошибочных ситуаций.

Умение готовить тестовые данные и оценивать полноту оных. Первая часть Входные данные вводятся, а выходные выводятся строго в том порядке, в котором они встречаются в задании. Вариант для каждой задачи определяется отдельно, по умолчанию по кольцу¹, но может быть изменён преподавателем на его усмотрение. Помните, что кодируется не задача, а её решение, которое необходимо иметь до того, как Вы сели за клавиатуру. Попробуйте поступить следующим образом: Выделите в задаче входные и выходные данные. Обычно это те данные, которые предлагается ввести самостоятельно и требуется распечатать соответственно. Найдите однозначную зависимость между входными и выходными данными, иначе говоря, решите задачу аналитически.

Выберите типы для представления данных. Мысленно разделите решение на три блока — блок ввода, блок расчёта, блок вывода; в первом закодируйте ввод и, если необходимо, проверку на валидность всех входных данных; во втором запишите последовательность действий для вычисления выходных данных по входным; в третьем реализуйте распечатку выходных данных на экран. Для задач первой части первой лабораторной работы можно считать, что пользователь всегда вводит только валидные данные, никаких проверок ввода совершать не нужно. Познакомьтесь с сообщениями, которые выдаёт компилятор во время компиляции программы с синтаксическими ошибками: (a) Попытайтесь скомпилировать программу из задачи №1, которая заведомо содержит синтаксические ошибки.

(b) Изучите выдачу компилятора. Какая информация помогает вам понять, к какой строке исходной программы относится сообщение об ошибке? (c) Исправьте ошибки. В силу специфики работы компилятора исправлять ошибки рекомендуется строго по одной и по порядку обнаружения с последующей попыткой компиляции после каждого исправления. Познакомьтесь с интегрированной средой разработки на примере QT Creator. В результате знакомства Вы должны уметь: (a) Создавать проект, настраивать этапы сборки и очистки проекта, запуск приложения. (b) Анализировать сообщения об ошибках компиляции; знать, где посмотреть сообщения об ошибках, выданные самим компилятором. (c) Использовать отладчик: выполнять программу в пошаговом режиме; устанавливать точки останова и условия их срабатывания; работать с переменными.

Задача №2 Принять с клавиатуры координаты xₐ, yₐ, x_b, y_b, x_c, y_c треугольника abc на плоскости. Найти и вывести на экран периметр P треугольника. Задача №3 С клавиатуры вводятся величины начальной скорости v₀, ускорения *a* и времени *t* равноускоренного прямолинейного движения тела. Найти и вывести на экран перемещение S. Задача №4 С клавиатуры задаётся время в секундах. Перевести в часы, минуты, секунды и вывести на экран. Вторая часть Входные данные вводятся, а выходные выводятся строго в том порядке, в котором они встречаются в задании. Начиная с пятой задачи, следует проверять валидность входных данных. Перечень и примеры проверок Вы можете найти в методических указаниях в кафедральном moodle.

Начиная с пятой задачи, следует отслеживать полноту тестовых данных с помощью утилиты gcov. Подробные методические указания Вы можете найти в кафедральном moodle. При реализации каждой из задач второй части Вам необходимо выделить, по крайней мере, одну осмысленную функцию. Задача №5 Составить программу для печати разложения на простые множители заданного натурального числа *n*. При *n* = 1 ничего не печатать. Задача №6 С клавиатуры задаются координаты точек x_q, y_q, x_r, y_r отрезка qr и координаты произвольной точки x_p, y_p. Определить, не принадлежит или принадлежит точка отрезку, и вывести на экран 0 или 1 соответственно. Задача №7 Приняв с клавиатуры *x* и ε, 0 < ε ≤ 1, вывести на экран вычисленное с точностью² ε приближённое значение s(x) и точное значение f(x) функции *f*, абсолютную Δ и относительную δ погрешности: Δ=∣f(x)−s(x)∣,δ=∣f(x)−s(x)∣∣f(x)∣.Δ=∣f(x)−s(x)∣,δ=∣f(x)∣∣f(x)−s(x)∣​.

²Накопление суммы следует выполнять до тех пор, пока очередной член ряда по абсолютной величине не окажется меньше заданной ε. (∀x:∣x∣<1) f(x)=1(1+x)3, s(x)=1−2⋅3⋅x2+3⋅4⋅x22−4⋅5⋅x32+5⋅6⋅x42+…(∀x:∣x∣<1) f(x)=(1+x)31, s(x)=1−22⋅3⋅x+23⋅4⋅x2−24⋅5⋅x3+25⋅6⋅x4+… Задача №8 Если во время выполнения программы в этой задаче ошибок не было, вывод результата следует начинать с сообщения «Result: », за которым выводить результат вычислений. В случае возникновения ошибочной ситуации вывод следует начинать с сообщения «Error: », за которым должно следовать описание ошибочной ситуации. Вводятся беззнаковое целое число длиной 4 байта *a* и целое число *n*. Числа вводятся в десятичной системе счисления.

Необходимо циклически сдвинуть значение переменной *a* на *n* позиций влево. Результат вывести в двоичной системе счисления. Задача №9 Приняв с клавиатуры по концевой признак до первого отрицательного числа элементы непустой последовательности неотрицательных чисел *x*, вычислить и вывести на экран значение g(x). g(x)=1n(1+x1+2+x2+⋯+n+xn)g(x)=n1(1+x1+2+x2+⋯+n+xn).

Характеристики лабораторной работы

Учебное заведение
Номер задания
Вариант
Теги
Просмотров
4
Размер
76,2 Kb

Преподаватели

Список файлов

lab_01
lab_01_02_03
func_tests
data
pos_01_in.txt
pos_01_out.txt
pos_02_in.txt
pos_02_out.txt
pos_03_in.txt
pos_03_out.txt
pos_04_in.txt
pos_04_out.txt
scripts
comparator.sh
func_tests.sh
neg_case.sh
pos_case.sh
readme.md
all.sh
build_debug.sh
build_debug_asan.sh
build_debug_ubsan.sh
build_release.sh
check_scripts.sh
clean.sh
collect_coverage.sh
main.c
lab_01_03_03
func_tests
data
pos_01_in.txt

mew007 - услуги отличника

Комментарии

Нет комментариев
Стань первым, кто что-нибудь напишет!
Поделитесь ссылкой:
Цена: 350 руб.
Расширенная гарантия +3 недели гарантии, +10% цены
Рейтинг автора
5 из 5
Поделитесь ссылкой:
Сопутствующие материалы

Подобрали для Вас услуги

Вы можете использовать лабораторную работу для примера, а также можете ссылаться на неё в своей работе. Авторство принадлежит автору работы, поэтому запрещено копировать текст из этой работы для любой публикации, в том числе в свою лабораторную работу в учебном заведении, без правильно оформленной ссылки. Читайте как правильно публиковать ссылки в своей работе.
Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7491
Авторов
на СтудИзбе
234
Средний доход
с одного платного файла
Обучение Подробнее