bsuir.info
БГУИР: Дистанционное и заочное обучение
(файловый архив)
Вход (быстрый)
Регистрация
Категории каталога
Другое [54]
Форма входа
Логин:
Пароль:
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Файловый архив
Файлы » СРРиТ / ИКТ (ЦТР) » Другое

Основы алгоритмизации и прогромирования. контрол 8 вар
Подробности о скачивании 25.10.2010, 18:22
Министерство образования Республики Беларусь
Учреждение образования
«БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ»
Институт информационных технологий

Специальность__СРРИТ________________________

КОНТРОЛЬНАЯ РАБОТА

По курсу Основы алгоритмизации и прогромирования

Вариант №8

Студент-заочник__1_ курса
Группы №_982922______
ФИО: Демко Валерий Леонидович
№ зачетной книжки:
Адрес:211174,Витебская обл.,г.Лепель, ул.Интернациональная 32 кв.28
Тел.8-02132-4-21-71
e-mail: [email protected]

Минск, 2009
Содержание
1. Задача №1
1.1. Постановка задачи 3
1.2. Схема алгоритма программы 4
1.3. Код программы 5
1.4. Результаты работы программы 6
2. Задача №2
2.1. Постановка задачи 7
2.2. Схема алгоритма программы 8
2.3. Код программы 9
2.4. Результаты работы программы 10
3. Задача №3
3.1. Постановка задачи 11
3.2. Схема алгоритма программы 12
3.3. Код программы 15
3.4. Результаты работы программы 16
4. Задача №4
4.1. Постановка задачи 17
4.2. Схема алгоритма программы 18
4.3. Код программы 23
4.4. Результаты работы программы 25
Список литературы 26


Постановка задачи №1

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

При x = –2.23510-2, y = 2.23, z = 15.221   = 39.374.

ОАиП КР01 08


Схема функции main Лист Масса Масшт.
Изм. Лист № докум. Подп. Дата
Разраб. Демко В.Л. 7.12
Пров. Кривоносова
Лист 1 Листов 1
БГУИР гр.982922
Н.контр.
Утв.
Схема алгоритма программы

Код программы

#include "stdio.h"
#include "conio.h"
#include "math.h"

int main()
{
double x,y,z,a,b,c,d,h,f; //объявление переменных
printf("Input x: "); //ввод элементов
scanf("%lf",&x);
printf("Input y: ");
scanf("%lf",&y);
printf("Input z: ");
scanf("%lf",&z);
a=fabs(x-y); //|x-y|
b=x+y;
c=atan(x)+atan(z); //arctg x + arctg z
d=x*x*x*x*x*x+log(y)*log(y);
h=pow(d,0.33333); //корень кубический из выражения d
f=(exp(a)*pow(a,b)/c)+h; //конечное представление уравнения
printf("\nThe result is: f=%.3lf",f); //вывод конечного результата
getch();
}

Результаты работы программы


Постановка задачи №2

Составить программу для вычисления значения rez в зависимости от поставленного условия.
Для получения результатов подобрать исходные данные так, чтобы выполнялись все возможные ветви алгоритма. Перед выводом полученного результата должно выводиться сообщение о ветви, при прохождении которой он получен.
rez=

ОАиП КР01 08


Схема функции main Лист Масса Масшт.
Изм. Лист № докум. Подп. Дата
Разраб. Демко В.Л. 7.12
Пров. Кривоносова
Лист 1 Листов 1
БГУИР гр.982922
Н.контр.
Утв.
Схема алгоритма программы

Да Нет
Код программы

#include "stdio.h"
#include "conio.h"
#include "math.h"

int main()
{
double c,k,rez;
puts("Input c and k: "); //ввод элементов
scanf("%lf%lf",&c,&k);

if(fabs(c+k)>2) //проверка первого условия
{
rez=pow(tan(c-(2*k)),2);
puts("\n|c+k|>2"); //вывод первого условия
}
else
{
rez=log(fabs(c-(2*k)))-sin(c/2*k);
puts("\n0.5<|c+k|<=2"); //вывод второго условия
}

printf("\nThe result is: rez=%.3lf",rez); //вывод результата
getch();
}

Результаты работы программы

1 вариант введенные значения соответствуют первому условию:

2 вариант введенные значения соответствуют второму условию:


Постановка задачи №3

В одномерном целочисленном массиве (размер массива (не больше 20) и значения его элементов вводить с клавиатуры) вычислить сумму целых частей элементов массива, расположенных после последнего отрицательного элемента.

ОАиП КР01 08


Схема функции main Лист Масса Масшт.
Изм. Лист № докум. Подп. Дата
Разраб. Демко В.Л. 7.12
Пров. Кривоносова
Лист 1 Листов 3
БГУИР гр.982922
Н.контр.
Утв.
Схема алгоритма программы


Нет

Да

ОАиП КР01 08


Схема функции main Лист Масса Масшт.
Изм. Лист № докум. Подп. Дата
Разраб. Демко В.Л. 7.12
Пров. Кривоносова
Лист 2 Листов 3
БГУИР гр.982922
Н.контр.
Утв.

Нет
Да
Нет
Да

Нет

Да

ОАиП КР01 08


Схема функции main Лист Масса Масшт.
Изм. Лист № докум. Подп. Дата
Разраб. Демко В.Л. 7.12
Пров. Кривоносова
Лист 3 Листов 3
БГУИР гр.982922
Н.контр.
Утв.

Код программы

#include "stdio.h"
#include "conio.h"

int main()
{
int n,i,m,okr,s=0;
double a[20],l;
printf("Input size of massive a:"); //ввод размера массива
scanf("%d",&n);
printf("\tMassive a:\n");
for(i=0;i<n;i++) //ввод элементов массива
{
printf("a[%d]= ",i+1);
scanf("%lf",&a[i]);
}
for(i=0;i<n;i++) //поиск последнего
отрицательного элемента
{
if(a[i]<0)
{
l=a[i];
m=i;
}
}
printf("The last negative number is: %.2lf ",l);
for(i=m+1;i<n;i++) //суммирование элементов
{
okr=int(a[i]);
s+=okr;
}
printf("\nThe SUM is: %d",s);
getch();
}

Результаты работы программы



Постановка задачи №4
В двухмерном целочисленном массиве (размеры массива N, M и значения его элементов вводить с клавиатуры) найти количество 0-й и 1-ц в массиве, а также сумму единиц.


ОАиП КР01 08


Схема функции main Лист Масса Масшт.
Изм. Лист № докум. Подп. Дата
Разраб. Демко В.Л. 7.12
Пров. Кривоносова
Лист 1 Листов 5
БГУИР гр.982922
Н.контр.
Утв.
Схема алгоритма программы


Нет

Да

ОАиП КР01 08


Схема функции main Лист Масса Масшт.
Изм. Лист № докум. Подп. Дата
Разраб. Демко В.Л. 7.12
Пров. Кривоносова
Лист 2 Листов 5
БГУИР гр.982922
Н.контр.
Утв.


Нет
Да

Нет
Да

Нет

Да

ОАиП КР01 08


Схема функции main Лист Масса Масшт.
Изм. Лист № докум. Подп. Дата
Разраб. Демко В.Л. 7.12
Пров. Кривоносова
Лист 3 Листов 5
БГУИР гр.982922
Н.контр.
Утв.

Нет

Да

ОАиП КР01 08


Схема функции ISUM Лист Масса Масшт.
Изм. Лист № докум. Подп. Дата
Разраб. Демко В.Л. 7.12
Пров. Кривоносова
Лист 4 Листов 5
БГУИР гр.982922
Н.контр.
Утв.

Нет

Да

Нет

Да
Нет Да

ОАиП КР01 08


Схема функции ISUM Лист Масса Масшт.
Изм. Лист № докум. Подп. Дата
Разраб. Демко В.Л. 7.12
Пров. Кривоносова
Лист 5 Листов 5
БГУИР гр.982922
Н.контр.
Утв.

Нет

Да


Нет

Да
Нет Да

Код программы

#include <stdio.h>
#include <conio.h>

int ISUM(int, int, int**, int*,int*); // описание прототипа функции
void main()
{
int **a, i, j, n, m,sum,kol1,kol0; //объявление переменных
printf("Input amount of rows : "); //ввод количества строк матрицы
scanf("%d",&n);
printf("Input amount of columns : "); //ввод количества столбцов
scanf("%d",&m);
a = new int*[n]; // захват памяти под указатели
for(i=0; i<n;i++)
{
a[i] = new int[m]; // захват памяти под элементы
}
printf("\nInput elements:\n");
for(i=0; i<n; i++) //ввод элементов матрицы
{
for(j=0; j<m; j++)
{
printf("\ta[%d] [%d] ",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
printf("\n Matrix is:\n");
for(i=0; i<n; i++) //вывод матрицы на экран
{
for(j=0; j<m; j++)
{
printf("\t%d ",a[i][j]);
}
printf(" \n");
}
// Обращение к функции с указанием
//фактических аргументов
sum = ISUM(n,m,a,&kol1,&kol0);
printf("\n\nAmount of '1' : %d\nAmount of '0' : %d\n\nSum of '1' is %d ",kol1,kol0,sum);
delete []a; // Освобождение памяти
printf("\n\nCLEAR ALL");
getch();
}
// Реализация функции ISUM
int ISUM(int a, int b, int **x, int *k,int *q)
{
int i, j, s = 0;
*k = 0;
for(i=0; i<a;i++)
{
for(j=0; j<b;j++)
{
if(x[i][j]==1) //поиск единиц в матрице
{
(*k)++;
s += x[i][j]; //подсчёт суммы единиц
}
}
}
*q = 0;
for(i=0; i<a;i++)
{
for(j=0; j<b;j++)
{
if(x[i][j]==0) //поиск нулей в матрице
{
(*q)++;
}
}
}
return s; //возвращение суммы
}

Результаты работы программы



Список использованной литературы

1. Батура М.П., Бусько В.Л., Корбит А.Г., Кривоносова Т.М. Основы алгоритмизации и программирования. Язык Си : учеб. пособие. – Минск : БГУИР, 2007.
2. Березин Б.И., Березин С.Б. Начальный курс С и С++. – М.: Диалог-Мифи, 2004.
3. Вирт Н. Алгоритмы и структуры данных. – М.: Мир,1989.
4. Демидович Е.М. Основы алгоритмизации и программирования. Язык Си. – СПб.: БХВ-Петербург,2006.
5. Ляхович В.Ф., Крамаров С.О. Основы информатики. – Ростов н/Д: Фе-никс, 2003.
6. Страуструп, Б. Язык программирования C++ / Б. Страуструп: 2-е изд.: В 2 т. – Киев: ДиаСофт, 1993.

Категория: Другое | Добавил: operator312
Просмотров: 1802 | Загрузок: 31
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]