Основы алгоритмизации и программирования. 9 лабораторных работ

Лабораторная работа
в среде программирования C++ Builder 6.0



Если Вы считаете, что данная страница каким-либо образом нарушает Ваши авторские права, то Вам следует обратиться в администрацию нашего сайта по адресу info@kursovik.com либо через форму обратной связи

Среда программирования: C++ Builder 6.0

Название работы: Основы алгоритмизации и программирования. 9 лабораторных работ

Вид работы: Лабораторная работа

Описание: ОСНОВЫ ПРОГРАММИРОВАНИЯ В СРЕДЕ C++ BUILDER.
Лабораторный практикум по курсу «Основы алгоритмизации и программирования».

Лабораторная работа №1. Линейный вычислительный процесс.
Цель работы: изучить правила составления текстов программ, научиться реализовывать линейные алгоритмы, а также составлять каркас простейшей программы в среде C++ Builder. Написать и отладить программу линейного
алгоритма в консольном и (или) оконном приложении.
Индивидуальное задание: Создать программу вычисления указанной величины. Результат проверить
при заданных исходных значениях.
1. При x = 14.26, y = –1.22, z = 3.5×10-2 → t = 0.564849.
2. При x = –4.5, y = 0.75×10-4, z = 0.845×102 → u = –55.6848.
3. При x = 3.74×10-2, y = –0.825, z = 0.16×102 → v = 1.0553.
4. При x = 0.4×104, y = –0.875, z = –0.475×10-3 → w = 1.9873.
5. ln( y )(x y / 2) sin2 arctg(z). α = x − + − При x = –15.246, y = 4.642×10-2, z = 20.001×102 → α = –182.036.
6. β = 10(3 x + x y+2 ) ⋅ (arcsin2 z− | x − y |) . При x = 16.55×10-3, y = –2.75, z = 0.15 → β = –38.902.
7. При x = 0.1722, y = 6.33, z = 3.25×10-4 → γ = –172.025.
8. 3 x6 ln2 y. При x = –2.235×10-2, y = 2.23, z = 15.221 → ϕ = 39.374.
9. ψ = − + − . При x = 1.825×102, y = 18.225, z = –3.298×10-2 → ψ = 1.2131.
10. a = 2−x x + 4 y 3 ex−1/ sin z . При x = 3.981×10-2, y = –1.625×103, z = 0.512 → a = 1.26185.
11. При x = 6.251, y = 0.827, z = 25.001 → b = 0.7121.
12. с y x x y y arctgz При x = 3.251, y = 0.325, z = 0.466×10-4 → c = 4.025.
13. При x = 17.421, y = 10.365×10-3, z = 0.828×105 → f = 0.33056.
14. При x = 12.3×10-1, y = 15.4, z = 0.252×103 → g = 82.8257.
15. При x = –2.235×10-2, y = 2.23, z = 15.221 → w = 39.374.

Лабораторная работа №2. Реализация разветвляющихся алгоритмов.
Цель работы: изучить операции сравнения, логические операции, операторы передачи управления if, switch, break, научиться пользоваться простейшими компонентами организации переключений (СheckBox, RadioGroup).
Написать и отладить программу с разветвлениями.
Индивидуальное задание: вычислить значение y в зависимости от выбранной функции ϕ(x), аргумент которой определяется из поставленного условия. Возможные значения функции ϕ(x): 2x, x2, х/3 (в оконном приложениии выбор выполнить с помощью компоненты RadioGroup). Предусмотреть вывод сообщений, показывающих, при каком условии и с какой функцией производились вычисления у.
1. y =a ln(1+ x1/ 5 )+ cos2[ϕ(x) +1] , где
2. 2 z z z z x
3. y = − πϕ(x) + a cos2 x3 + bsin3 x2 , где
4. y = 2a cos3 x2 + sin2 x3 − bϕ(x) , где
5. y = aϕ(x) −ln(x + 2,5) + b(ex − e−x ) , где
6. cos ( ) y = 2 a 2 x − b 2 ϕ x , где
7. y = sin3[cϕ(x) + d 2 + x2 ], где
8. y = sin2 ϕ(x) + a cos5 x3 + c ln x2 / 5 , где
9. 2 ln cos ( ) a tg x x y b x + ϕ , где
10. x y d x e c x ( ) x ln( 1) ϕ sin3 , где
11. ln | | ( ) 2,5 3 4 2 x x y a e bx x +ϕ , где
12. y = a sin3[ϕ(x)2 −1] + c ln | x | +ex , где
13. y = sin[nϕ(x)] + cos kx + lnmx , где
14. y = b aϕ x + x + aex
15. y =2ϕ(x)[asin x + d ⋅ e−( x+3) ], где
16. y = a ln | x | +ex + c sin3[ϕ(x)2 −1], где

Лабораторная работа №3. Реализация циклических алгоритмов Цель работы: изучить циклические операторы while, do-while, for, научиться реализовывать циклические алгоритмы. Изучив простейшие средства отладки программ в среде C++ Builder, составить и отладить программу.
Индивидуальное задание: Для каждого x, изменяющегося от a до b с шагом h, найти значения функции Y(x), суммы S(x) и |Y(x) – S(x)| и вывести в виде таблицы. Значения a, b, h и n вводятся с клавиатуры. Так как значение S(x) является рядом разложения функции Y(x), при правильном решении значения S и Y для заданного аргумента x (для тестовых значений исходных данных) должны совпадать в целой части и в первых двух–четырех позициях после десятичной точки.
Работу программы проверить для a = 0,1; b = 1,0; h = 0,1; значение параметра n выбрать в зависимости от задания.
1. k , Y(x) = sin(x).
2. S x x Y(x) = x⋅ arctg(x) − ln 1+ x2 .
3. π = ( ) 4 cos( sin( / 4)) cos = π
4. S x x Y(x) = cos(x) .
5. S x kx Y(x) = ecos x cos(sin(x)) .
6. 2 Y(x) = (1+ 2x2 )ex
7. ln(1 2 cos 2 Y(x) 1 x + x2 π
8. S x x ( ) (2 ) , Y(x) = e2x .
9. Y x x arctg x − x
10. ex e x Y x
11. S x k ( / 2), Y(x) = (x2 / 4 + x / 2 +1)ex / 2 .
12. Y x = − x x − x x .
13. S x x ( 1) (2 ) , Y(x) = 2(cos2 x −1) .
14. x e x Y x
15. 2 (2 1) ( ) ( 1) , Y(x) = −ln 1+ x2 + x arctg(x) .
16. ( ) cos[ sin( / 4)]

Лабораторная работа №4. Функции пользователя.
Цель работы: познакомиться с механизмом составления и организации взаимодействия пользовательских функций, составить и отладить программу.
Индивидуальное задание: по заданию лабораторной работы №3 написать программу расчета выбранной функции Y(x) или S(x) (желательно и |Y(x)–S(x)|), вид которой в свою очередь передается в качестве параметра в функцию вывода (Out_Tabl).

Лабораторная работа №5. Обработка одномерных массивов.
Цель работы: изучить составной тип данных – массив, основные свойства компоненты StringGrid. Написать и отладить программу с использованием одномерных массивов.
Индивидуальное задание: написать программу по обработке одномерных массивов. Размеры массивов вводить с клавиатуры. Предусмотреть возможность ввода данных как с
клавиатуры, так и с использованием функции random().
При создании оконного приложения скалярный (простой) результат выводить в виде компоненты Label, а массивы вводить и выводить с помощью компонент StringGrid.
В одномерном массиве, состоящем из n вводимых с клавиатуры целых элементов, вычислить:
1. Произведение элементов массива, расположенных между максимальным и минимальным элементами.
2. Сумму элементов массива, расположенных между первым и последним нулевыми элементами.
3. Сумму элементов массива, расположенных до последнего положительного элемента.
4. Сумму элементов массива, расположенных между первым и последним положительными элементами.
5. Произведение элементов массива, расположенных между первым и вторым нулевыми элементами.
6. Сумму элементов массива, расположенных между первым и вторым отрицательными элементами.
7. Сумму элементов массива, расположенных до минимального элемента.
8. Сумму целых частей элементов массива, расположенных после последнего отрицательного элемента.
9. Сумму элементов массива, расположенных после последнего элемента, равного нулю.
10. Сумму модулей элементов массива, расположенных после минимального по модулю элемента.
11. Сумму элементов массива, расположенных после минимального элемента.
12. Сумму элементов массива, расположенных после первого положительного элемента.
13. Сумму модулей элементов массива, расположенных после первого отрицательного элемента.
14. Сумму модулей элементов массива, расположенных после первого элемента, равного нулю.
15. Сумму положительных элементов массива, расположенных до максимального элемента.
16. Произведение элементов массива, расположенных между первым и последним отрицательными элементами.

Лабораторная работа №6. Обработка двухмерных динамических массивов.
Цель работы: изучить понятие «указатель», правила создания и приемы обработки динамических массивов на примере двухмерного массива.
Индивидуальное задание: написать программу по обработке динамических массивов. Размеры массивов вводить с клавиатуры. При создании оконного приложения скалярный (простой) результат выводить в виде компоненты Label, а массивы вводить и выводить с помощью компонент StringGrid, в которых 0-й столбец и 0-ю строку использовать для отображения индексов массивов.
1. Из матрицы размером N×M получить вектор B, присвоив его k-му элементу значение 0, если все элементы k-го столбца матрицы нулевые, иначе 1.
2. Из матрицы размером N×M получить вектор B, присвоив его k-му элементу значение 1, если элементы k-й строки матрицы упорядочены по убыванию, иначе 0.
3. Из матрицы размером N×M получить вектор B, присвоив его k-му элементу значение 1, если k-я строка матрицы симметрична, иначе значение 0.
4. Задана матрица размером N×M. Определить количество «особых» элементов матрицы, считая элемент «особым», если он больше суммы остальных элементов своего столбца.
5. Задана матрица размером N×M. Определить количество элементов матрицы, у которых слева находится элемент больше его, а справа – меньше.
6. Задана матрица размером N×M. Определить количество различных значений матрицы, т.е. повторяющиеся элементы считать один раз.
7. В матрице размером N×M упорядочить строки по возрастанию их первых элементов.
8. В матрице размером N×M упорядочить строки по возрастанию суммы их элементов.
9. В матрице размером N×M упорядочить строки по возрастанию их наибольших элементов.
10. Определить, является ли квадратная матрица симметричной относительно побочной диагонали.
11. Задана матрица размером N×M. Определить количество элементов матрицы, у которых слева находится элемент меньше его, а справа – больше.
12. В квадратной матрице найти произведение элементов, лежащих выше побочной диагонали.
13. В квадратной матрице найти максимальный среди элементов, лежащих ниже побочной диагонали.
14. В матрице размером N×M поменять местами строку, содержащую элемент с наибольшим значением со строкой, содержащей элемент с наименьшим значением.
15. Из матрицы размером n получить матрицу размером n–1 путем удаления строки и столбца, на пересечении которых расположен элемент с наибольшим по модулю значением.
16. В матрице размером n найти сумму элементов, лежащих ниже главной диагонали, и произведение элементов, лежащих выше главной диагонали.

Лабораторная работа №7. Использование строк.
Цель работы: изучить особенности строковых данных, правила работы с компонентами ListBox и СomboBox. Написать и отладить программу работы со строками.
Индивидуальное задание: в оконном приложении исходные данные вводить из компоненты Edit в ListBox (заканчивать нажатием Enter). Скалярный результат выводить в компоненту Label. Для выхода из программы использовать кнопку «Close».
1. В строке, состоящей из групп нулей и единиц, разделенных пробелами, найти количество групп с пятью цифрами.
2. В строке, состоящей из групп нулей и единиц, найти и вывести на экран самую короткую группу.
3. В строке, состоящей из групп нулей и единиц, подсчитать количество символов в самой длинной группе.
4. В строке, состоящей из групп нулей и единиц, найти и вывести на экран группы с четным количеством символов.
5. В строке, состоящей из групп нулей и единиц, подсчитать количество единиц в группах с нечетным количеством символов.
6. Из строки, состоящей из букв, цифр, запятых, точек, знаков + и – , выделить подстроку, которая соответствует записи целого числа.
7. Из строки, состоящей из букв, цифр, запятых, точек, знаков + и – , выделить подстроку, задающую вещественное число с фиксированной точкой.
8. Из строки, состоящей из букв, цифр, запятых, точек, знаков + и – , выделить подстроку, задающую вещественное число с плавающей точкой.
9. Дана строка символов, состоящая из цифр, разделенных пробелами. Вывести на экран числа этой строки в порядке возрастания их значений.
10. Дана строка символов, состоящая из цифр, разделенных пробелами. Вывести четные числа этой строки.
11. Дана строка, состоящая из слов на английском языке, разделенных пробелами. Вывести на экран эти слова в алфавитном порядке.
12. Дана строка, состоящая из слов, разделенных пробелами. Вывести на экран порядковый номер слова, содержащего k-ю позицию, если в k-й позиции пробел, то – номер предыдущего слова. Значение k ввести с клавиатуры.
13. Дана строка, состоящая из слов, разделенных пробелами. Разбить исходную строку на две подстроки, причем первая длиной k символов, если на k-ю позицию попадает слово, то его следует отнести ко второй строке. Значение k вводится с клавиатуры.
14. Дана строка, состоящая из слов, разделенных пробелами. Вывести на экран порядковый номер слова максимальной длины и номер позиции строки, с которой оно начинается.
15. Дана строка, состоящая из слов, разделенных пробелами. Вывести на экран порядковый номер слова минимальной длины и количество символов в этом слове.
16. В строке символов посчитать количество скобок различного вида.

Лабораторная работа №8. Обработка структур с использованием файлов.
Цель работы: изучить правила создания и обработки данных структурного типа с использованеием файлов; правила работы с компонентами OpenDialog и SaveDialog; написать и отладить программу по созданию файлов.
Индивидуальное задание: написать программу обработки файла типа запись, содержащую следующие пункты меню: «Создание», «Просмотр», «Коррекция» (добавление новых данных или редактирование старых), «Решение индивидуального задания».
Каждая запись должна содержать следующую информацию о студентах:
– фамилия и инициалы;
– год рождения;
– номер группы;
– оценки за семестр по физике, математике, информатике, химии;
– средний балл.
Организовать ввод исходных данных, средний балл рассчитать по введенным оценкам.
Содержимое всего файла и результаты решения индивидувльного задания записать в текстовый файл.
1. Распечатать анкетные данные студентов, сдавших сессию на 8, 9 и 10.
2. Распечатать анкетные данные студентов-отличников, фамилии которых начинаются с интересующей вас буквы.
3. Распечатать анкетные данные студентов-отличников из интересующей вас группы.
4. Распечатать анкетные данные студентов, фамилии которых начинаются с буквы А и которые сдали математику на 8 или 9.
5. Распечатать анкетные данные студентов, имеющих оценки 4 или 5 по физике и оценку больше 8 по остальным предметам.
6. Распечатать анкетные данные студентов интересующей вас группы. Фамилии студентов начинаются с букв В, Г и Д.
7. Распечатать анкетные данные студентов, не имеющих оценок меньше 4 по информатике и математике.
8. Вычислить общий средний балл всех студентов и распечатать список студентов со средним баллом выше общего среднего балла.
9. Вычислить общий средний балл всех студентов и распечатать список студентов интересующей вас группы, имеющих средний балл выше общего среднего балла.
10. Распечатать анкетные данные студентов интересующей вас группы, имеющих неудовлетворительную оценку (меньше 4).
11. Распечатать анкетные данные студентов интересующей вас группы, имеющих оценку 9 или 10 по информатике.
12. Распечатать анкетные данные студентов, имеющих оценки 7 или 8 по физике и оценки 9 или 10 по высшей математике.
13. Вычислить общий средний балл студентов интересующей вас группы и распечатать список студентов этой группы, имеющих средний балл выше общего.
14. Распечатать анкетные данные студентов-отличников интересующей вас группы.
15. Распечатать анкетные данные студентов интересующей вас группы, имеющих средний балл выше введенного с клавиатуры.
16. Распечатать анкетные данные студентов интересующей вас группы, имеющих оценку 8 по физике и оценку 9 по высшей математике.

Лабораторная работа №9. Построение графиков функций.
Цель работы: изучить некоторые возможности построения графиков функций с помощью компонент Сhart и Image; научиться работать с графическими объектами; написать и отладить программу с использованием функций отображения графической информации.
Индивидуальное задание: написать программу вывода графиков функции (лабораторная работа №3) Y(x) и ее разложения в ряд S(x) для аргумента x, изменяющегося от a до b с шагом h (вводятся с клавиатуры), с использованием компоненты Сhart и графика функции Y(x) с использованием компоненты Image.

Год: 2022

Данный заказ (лабораторная работа) выполнялся нашим сайтом в 2022-м году, в рамках этого заказа была разработана программа в среде программирования C++ Builder 6.0. Если у Вас похожее задание на программу, которую нужно написать на C++ Builder 6.0, либо на другом языке программирования, пожалуйста заполните форму, приведённую ниже, после чего Ваше задание в первую очередь рассмотрит наш программист, выполнявший в 2022-м году этот заказ, если он откажется, то Ваше задание оценят другие наши программисты в течение 48-и часов, если оценка нужна срочно, просим Вас оставить пометку об этом - напишите в тексте задания фразу "СРОЧНЫЙ ЗАКАЗ".

Купить эту работу

Viber: +79374242235
Telegram: kursovikcom
ВКонтакте: kursovikcom
WhatsApp +79374242235
E-mail: info@kursovik.com
Skype: kursovik.com