Российская Федерация
Тюменская область
ХАНТЫ-МАНСИЙСКИЙ АВТОНОМНЫЙ ОКРУГ – ЮГРА
Департамент образования и науки
Сургутский государственный университет
Ханты-Мансийского автономного округа
Инженерно-физический факультет Кафедра автоматики и компьютерных систем |
Отчет
По лабораторной работе № 1
По дисциплине «Структурное программирование»
Выполнил: студент группы 12-11а
Гильмияров Р.Р.
Проверил: ассистент
Щербаков А.М.
Сургут
2012 г.
Задача 3) Задано количество команд, участвующих в чемпионате. Найти количество игр, если чемпионат проходит по круговой схеме в два круга.
Решение:
1) Для решения нам понадобятся исходные данные: количество команд. Количество игр вычисляется с помощью формулы .
2) Блок-схема:
Начало |
Запрос и получение переменной n (количество команд) |
k=n*(n-1)/2 |
Вывод на экран ответа. |
Конец |
3) Основная часть программы на языке С++:
#include "stdafx.h"
|
|
int _tmain(int argc, _TCHAR* argv[])
{
int n,k;
printf("Vvtdite kolichestvo komand");
scanf("%d",&n);
k=n*(n-1)/2;
printf("Neobhodimoe kolichestvo igr = %d",k);
return 0;
}
4) Обоснование типов данных и операций:
Так как количество команд и количество игр являются целыми числами, то используется тип int.
Задача 18) Задано время в часах, минутах и секундах. Найти значения времени, округленные до минут и до часов.
1) Для решения нам понадобятся исходные данные: часы (ch), минуты (min) и секунды (sec). Все переводим в секунды (часы домножаем на 3600, минуты – на 60, секунды оставляем неизменными.Все значение суммируем).
CH – округленные часы. MIN – округленные минуты.
Для перевода в часы (CH) нужно взять целую часть от деления sec/3600.
Для перевода в минуты (MIN) – взять целую часть от (S – CH*3600)/60.
2) Блок-схема:
Начало |
Запрос и получение переменных ch (количество часов),min (кол-во минут),sec(кол-во секунд) |
S=ch*3600+min*60+sec; CH=S/3600; MIN=(S-CH*3600)/60; |
Вывод на экран ответа. |
Конец |
3) Основная часть программы на языке С++:
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
int ch,min,sec,CH,MIN;
printf("Vvedite kol-vo chasov: ");
scanf("%d",&ch);
printf("\nVvedite kol-vo minut: ");
scanf("%d",&min);
printf("\nVvedite kol-vo secund");
scanf("%d",&sec);
sec=ch*3600+min*60+sec;
CH=sec/3600;
MIN=(sec-CH*3600)/60;
printf("\nOkruglenno kol-vo chasov = %d i kol-vo minut = %d.\n",CH,MIN);
return 0;
}
4) Обоснование типов данных и операций:
Так как часы, минуты и секунды измеряются в целых числах, то использовался только тип int.
Задача 33) Заданы коэффициенты полинома второго порядка. Найти координаты вершины параболы.
1) Для решения задачи понадобятся исходные данные: коэффициенты a, b и c. Координаты вершины параболы рассчитываются по формулам:
|
|
x0=-b/(2*a);
y0=-(b2-4*a*c)/4*a;
2) Блок-схема:
x0=-b/(2*a); y0=-(b2-4*a*c)/4*a; |
Вывод на экран ответа. |
Конец |
Начало |
Запрос и получение переменных a,bи c |
3) Основная часть программы на языке С++:
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
float a,b,c,x0,y0;
printf("y=ax^2+bx+c");
printf("\nVvedite a: ");
scanf("%f=",&a);
printf("\nVvedite b: ");
scanf("%f=",&b);
printf("\nVvedite c: ");
scanf("%f=",&c);
x0=-b/(2*a);
y0=-(b*b-4*a*c)/4*a;
printf("\n\nKoordinati vershin:\nX = %.3f, Y = %.1f.\n",x0,y0);
return 0;
}
4) Обоснование типов данных и операций:
Так как переменные a,b и c могут принимать любые значения, включая дробные, то для всех переменных использовался тип float.