Программирование
на языках высокого уровня. Язык программирования Си |
|
Лабораторные работы по курсу “Программирование
на языках высокого уровня”
Программирование алгоритмов линейной и разветвляющейся структуры
Задание 1. Составьте и выполните программу линейной структуры согласно вариантам задания.
Варианты задания 1 Вычислить значение функции переменных при заданных значениях параметров: 1. x=4y2/(4z-2t3) при t=1 ; z=3; y=sin t. 2 x=4y3-z/t при t=2; z=3; y=cos(t+z). 3. x=6t2-(z+1)/y2 при y=2; z=4; t=sin(2+z). 4. x=(8z2+1)/(y+t2) при z=1; t=2; y=t+z. 5 x=8z / (et+2)-y2 при t=3; z=ctg t +2; y=4. 6. x=8z/(et+2)-y2 при t=1; z=t+2; y=4. 7. x=2y+3 sh t- z при y=2; t=5 / (1+y2); z=4. 8. x=3 y2/ (4 tg z-2t2) при t=0.5; z=6; y=t+2 ctg z. 9. x=4y2 /( 4y ez - 2t3) при t=1 ; z=3; y=sin t. 10. x=4 ln y3-z / t при t=2; z=3; y=cos(t+z).
Задание 2. Составьте программы разветвляющейся структуры согласно вариантам задания (используя IF)
Варианты задания 2
Программирование алгоритмов циклической структуры и обработка статических массивов
Задание 1. Составьте 3 варианта программ циклической структуры типа for , while, do…while и сравните полученные результаты.
Варианты задания 1 1.
2. 3.
4. 5.
6. . 7.
8. 9.
10.
Задание 2. Даны вещественные числа a, b. Значения функции (согласно вариантам) записать в массив. Вычислить значение интеграла, используя: 1) Формулу трапеций I1=h*[f(a)/2+f(a+h)+f(a+2h)+…+f(a+(n-1)h)+f(b)/2] 2) Формулу Симпсона I2=h/3*(f(a)+f(b)+4*(f(a+h)+f(a+3h)+…+f(a+(n-1)h))+ 2*(f(a+2h)+f(a+4h)+…+f(a+(n-2)h))) h=(b-a)/n, n=100.
Варианты задания 2 1. f(x)=x2/(10+x3); a=-2; b=5; 2. f(x)=(2.5x2-0.1)/(tg x+sin x); a=4; b=6; 3. f(x)=(x+1)2√lg x; a=2; b=10; 4. f(x)=x2 ln x /(1+x)2; a=1; b=20; 5. f(x)=1/((0.5+0.1x3)√x); a=0.1; b=2.1; 6. f(x)=x 2√(2+3x)3; a=0.5; b=2.5; 7. f(x)=1/√(0.02+0.01x); a=1; b=30; 8. f(x)=(1+2x+x2)/(5+2x2); a=-2; b=2; 9. f(x)=(2x+lg x)/(1+lg x); a=1; b=10; 10. f(x)=√(2+x)3/x2; a=0.2; b=10;
Работа с функциями языка Си Задание 1 : Используя функцию, написать программу по своему варианту. Варианты задания 1 1. Написать функцию, сортирующую в порядке возрастания элементы одномерного массива. В главной программе вызвать функцию для двух разных массивов.
2. Написать функцию вычисления произведения прямоугольной матрицы A размера k x m на прямоугольную матрицу B размера m x n. В главной программе обратиться к этой функции.
3. Написать функцию вычисления суммы ряда s=s(1)+…+s(n), где s(n)=(-1)n x(2n-1)/(2n+1) с точностью до eps=0.001. В качестве параметров выбрать x и eps.
4. Написать функцию, которая вычисляет для заданной квадратной матрицы A её симметричную часть S(ij)=(A(ij)+A(ji))/2 и кососимметричную часть K(ij)=(A(ij)-A(ji))/2. 5. Написать функцию “шапочка” f(x), зависящую от параметров a и b: если |x| >a то f(x)=0 иначе f(x)=b*exp(-a2/(a2-|x|2)). В качестве параметров передать a,b,x.
6. Написать функцию поиска максимального и минимального элементов одномерного массива. В основной программе вызвать эту функцию для двух разных массивов.
7. Написать функцию, которая сортирует одномерный массив в порядке убывания методом пузырька. В основной программе вызвать эту функцию для двух разных массивов.
8. Написать функцию, которая по двум заданным одномерным массивам (A размера m и B размера n) вычисляет максимальное значение двумерного массива c(ij)=a(i)*b(j).
9. Написать функцию определителя квадратной матрицы A размера 3x3: detA=a(1,1)a(2,2)a(3,3)+a(3,1)a(1,2)a(2,3)+a(2,1)a(3,2)a(1,3)-a(3,1)a(2,2)a(1,3)-a(1,1)a(3,2)a(2,3)-a(2,1)a(1,2)a(3,3).
10. Написать функцию вычисления суммы ряда y=sinx-(sin2x)/2+… +(-1)n+1sin(nx)/n с точностью до eps=0.001. В качестве параметров передать x (в радианах) и eps.
Работа с массивом структур
Задание 1: Создать массив структур и выполнить задание согласно своему варианту. Варианты задания 1 1. Дана информация о 10 студентах. Структура имеет вид: фамилия, год рождения, факультет. Вывести данные о студентах по заданному факультету. 2. Дана информация о пяти школах. Структура имеет вид: номер школы, год, количество выпускников, число поступивших в ВУЗы. Вывести данные об общем количестве выпускников и доле поступивших в ВУЗ. 3. Дана информация о пяти комнатах в общежитии. Структура имеет вид: фамилии, номер комнаты, факультет, площадь. Вывести данные о комнатах по заданному факультету, а также количество комнат на этом факультете. 4. Дана информация о пяти рабочих цеха. Структура имеет вид: фамилия, размер зарплаты, стаж работы. Вывести данные о рабочем с наибольшей зарплатой и наименьшим стажем. 5. Дана информация о четырех вузах. Структура имеет вид: название вуза, число студентов, количество факультетов, количество кафедр. Вывести данные об общем числе студентов, факультетов и кафедр. 6. Дана информация о шести вкладчиках в сберкассы. Структура имеет вид: фамилия, район, социальное положение, величина вклада. Вывести данные о том, сколько среди вкладчиков служащих, рабочих и колхозников. 7. Дана информация о пяти больных. Структура имеет вид: фамилия, возраст, пол, давление. Вывести данные о больных с повышенным давлением (больше 140) . 8. Дана информация о пяти квартирах. Структура имеет вид: фамилия владельца, площадь, число комнат, этаж. Вывести данные о квартирах с площадью меньше 30 кв.м и подсчитать их количество. 9. Дана информация о шести студентах. Структура имеет вид: фамилия, год рождения, место рождения, факультет. Вывести данные о старших по возрасту студентах, предполагая, что год рождения может быть одинаков. 10. Дана информация о пяти школах. Структура имеет вид: номер школы, год, количество выпускников, число поступивших в ВУЗы. Вывести данные о школе с самым большим отношением числа поступивших к числу выпускников
Работа с файлами языка Си
Задание 1. Используя функции и режим меню, создать файл из 10 структур, просмотреть файл, добавить в файл новую информацию и, применяя режим прямого доступа, выполнить задание по своему варианту.
Варианты задания 1 1. Структура имеет вид: фамилия, пол, год рождения и рост. Вывести данные о самом высоком спортсмене. 2. Структура имеет вид: название вуза, число студентов, количество факультетов. Добавить в конец файла информацию о трех новых вузах и посчитать общее число студентов. 3. Структура имеет вид: название издания, газеты или журнала, стоимость одного экземпляра, количество экземпляров в год. Вывести на печать информацию о самом дешевом издании. 4. Структура имеет вид: фамилия студента, номер зачетной книжки, 4 оценки за экзамен. Выводить информацию о всех двоечниках и корректировать ее. 5. Структура имеет вид: фамилия спортсмена, его номер, количество набранных очков. Поменять местами в файле записи о первых двух спортсменах. * 6. Структура имеет вид: фамилия, номер телефона, дата рождения. Внести в начало списка информацию о четырех новых знакомых. 7. Структура имеет вид: название инструмента, число, месяц и год изготовления. Вывести на печать информацию об инструменте с самым большим сроком использования и выполнить корректировку этой записи. 8. Структура имеет вид: номер читательского билета, автор книги, название, дата заказа. Вывести на экран содержимое файла. Поменять местами первую и последнюю записи в файле.* 9. Структура имеет вид: фамилия спортсмена, его номер, количество набранных очков. Удалить из списка информацию о спортсмене с наименьшим количеством очков. 10. Структура имеет вид: фамилия, количество вещей, общий вес. Удалите из файла сведения о багаже, общий вес вещей в котором меньше, чем 10 кг. * При обмене введите промежуточную переменную типа структура.
|