- •Контрольная работа по дисциплине «программирование»
- •Содержание
- •Задача 1 Тема 1 (линейные алгоритмы)
- •Задача 2.1 Тема 2 (разветвляющиеся алгоритмы)
- •Задача 2.2 Тема 2 (разветвляющиеся алгоритмы)
- •Задача 3.1 Тема 3 (циклические алгоритмы)
- •Задача 3.2 Тема 3 (циклические алгоритмы)
- •Задача 4 Тема 4 (одномерные массивы)
- •Задача 5 Тема 5 (двумерные массивы)
Задача 3.1 Тема 3 (циклические алгоритмы)
Условие: Дано
натуральное число N
и вещественное
число x.
Вычислить
Дано:
N, x | переменные | тип float
Результат:
Вывод на экран значения выражения.
Б
c*= -1
s+=c*cos(k+x)
локсхема:
+
+
Листинг программы:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main(void) {
float x,k,s,N,c=1;
scanf("%f%f",&N,&x);
for (int k=1; k<=N;k++)
{
for (int f=1; f<k;f++)
{
c*=-1;
}
s+=c*cos(k+x);
}
printf("%f",s);
return 0;
}
Скриншот результата:
Тестовые примеры:
Исходные данные |
Ожидаемый результат |
Результат программы |
3, 10 |
-1.746875
|
-1.746875
|
15, 1 |
2.025970
|
2.025970
|
4, 4 |
-1.575910
|
-1.575910
|
45, 10
|
0.029474
|
0.029474
|
Задача 3.2 Тема 3 (циклические алгоритмы)
Условие: Целое положительное десятичное число m записать в двоичной системе счисления.
Дано:
m | переменная | тип int
Результат:
Вывод на экран числа m в двоичной системе счисления.
Б локсхема:
i--
+
mas[i]=m%2 m=m/2; i++;
+
Листинг программы:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main ()
{
int m,mas[100],i=0;
scanf("%d",&m);//Ввод числа
while (m>0) //Цикл записывающий остаток при делении числа на 2 в массив
{
mas[i]=m%2;
m=m/2;
i++;
}
while (i>0)//Вывод массива в обратном порядке
{ i--;
printf("%d", mas[i]);
}
return 0;
}
Скриншот результата:
Тестовые примеры:
Исходные данные |
Ожидаемый результат |
Результат программы |
13 |
1101
|
1101
|
196 |
11000100
|
11000100
|
228 |
11100100
|
11100100
|
512 |
1000000000 |
1000000000 |
Задача 4 Тема 4 (одномерные массивы)
Условие: В целочисленном массиве подсчитать количество элементов, значения которых больше значения предыдущего элемента.
Дано:
mas | массив | тип int
Результат:
Вывод на экран количество элементов, значения которых больше значения предыдущего элемента.
Блоксхема:
+
mas[i]=случайное
число от 0 до 10, i++;
+
X++
+
Листинг программы:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main(void) {
srand(time(NULL));
int n=10+rand()%12,x;
int mas[n];
for (int i=0;i<n;i++)
{
mas[i]=0+rand()%10;
printf("%d ",mas[i]);
}
printf("\n ");
for (int i=1;i<n;i++)
{
if(mas[i]>mas[i-1])
{
x++;
}
}
printf("Количество элементов больше чем предыдущий: %d",x);
return 0;
Скриншот результата:
Тестовые примеры:
Исходные данные |
Ожидаемый результат |
Результат программы |
8 4 6 6 1 6 1 8 4 2 6 3
|
4 |
4 |
6 9 8 9 7 1 4 8 1 9
|
5 |
5 |
1 2 9 1 1 9 7 4 7 2 6 8 9 0 0 7 9 7 5 |
9 |
9 |
5 4 3 3 0 3 8 2 4 9 7 9 9 8
|
5 |
5 |
