Lab-4 (2)


Чтобы посмотреть этот PDF файл с форматированием и разметкой, скачайте его и откройте на своем компьютере.
.

.

.

.

.

.
.

.

.

.


.........
.




Курс «
Языки и методы
программирования
»

Функции



Лабораторная работа №
4




















Барнаул 20
1
3



Алтайский государственный университет

Математический факультет

Кафедра информатики

.

.

.

.

.

.

.
.

.

.





2


Функции

Лабораторная работа №
4

Цель работы

Освоить
использование
функций
при
программировани
и

на языке C.

Задание

1.

Прочитать



глав
у

5

из книги

Дейтел Х., Дейтел П.

Как п
рограммирова
ть

на С;



главу
4

из
книги

Керниган Б., Ритчи Д. Язык программирования Си.

2.

Для
указанного преподавателем
вариант
а

задани
я
р
азработать

a)

программ
у
,


решающую задачу из раздела

Вариа
нты

з
адани
й

по
теме «
Простые функции
»
;

b)

программу,

решающую задачу из раздела
Варианты
з
адани
й

по теме

«
Функции

и структура программы
»
.

3.

Оформить отчет о лабораторной работе. Отчет должен содержать
следующие элементы.



Титульный лист с указанием фамилии, имени, отчества,
номера группы автора, на
звания и номера лабораторной
работы.



Для каждой решаемой задачи: н
омер и формулировк
у

задания
.



Для каждой решаемой задачи: и
сходный код программы с
комментариями. Обязательные комментарии:



описание каждой функции (назначение, параметры,
возвращаемые значе
ния)
;




описание всех используемых переменных и констант
;



описание отдельных логически завершенных
фрагментов программы.



Тесты, иллюстрирующие все основные варианты работы
программы




3


Вариа
нты
з
адани
й

по теме «
Простые функции
»

1.

Разработать функцию

p
ower
s
(
A
,
B
,
C
,
D
)
,
вычисляющую
третью, четвертую и степень числа
A

и возвращающую эти степени
соответственно в переменных
B
,
C
,
D

(
А



входно
й,
B
,
C
,
D




выходные

параметры
)
.

В качестве возвращаемого значения
функция должна выдавать истину, если число
A

положител
ьно и
ложь


в противном случае.
С помощью этой функции найти
вторую, третью и четвертую степени пяти данных пользователем
чисел.

2.

Разработать функцию

mean
(
X
,
Y
,
AMean
,
GMean
)
,
вычисляющую

среднее арифметическое

и среднее геометрическое
двух положительных
чисел

X

и
Y

(
X
,
Y



входные, а
AMean
,
GMean



выходные параметры)
. В качестве возвращаемого значения
функция должна выдавать истину, если числа
X

и
Y


положительны
и ложь


в противном случае. С помощью этой функции найти
среднее арифметическое и среднее г
еометрическое для пар чисел
(
A
,
B
)
,
(
A
,
C
)
,
(
A
,
D
)
,
если
A
,
B
,
C
,
D

заданы пользователем.

.

Разработать функцию

t
rianglePS
1
(
a
,

b
,

c
,

P
,

S
)
,
вычисляющую по сторон
ам

треугольника
a
, b
,
c


его периметр

P

и
площадь

S


(
a
, b
,
c



входн
ые
,

P

и

S



выходные параметры).
В
качестве результирующего значения функция должна возвращать
истину, если возможно построить треугольник с заданными
сторонами и ложь


в противном случае.
С помощью этой
процедуры найти периметры и площади трех треугольников с
за
д
анными
пользователем
сторонами.

.

Разработать функцию

r
ectPS(
x
1,

y
1,

x
2,

y
2,

P
,

S
)
,
вычисляющую периметр

P

и площадь

S

прямоугольника со
сторонами, параллельными осям координат, по координатам
(
x
1
,

y
1
), (
x
2
,

y
2
) его противоположных вершин (
x
1
,

y
1
,

x
2
,

y
2



входные,

P

и

S


выходные параметры). В

качестве
результирующего значения функция должна возвращать истину,
если прямоугольник не является вырожденным (т.е. одна из его
сторон имеет нулевую длину) и ложь


в противном случае.
С
помощью этой процедуры найти

периметры и площади трех
прямоугольников с данными противоположными вершинами.

5.

Разработать функцию

i
nv
erse
Digits(
K
)
, меняющую порядок
следования цифр целого положительного числа

K

на обратный
(
K



параметр целого типа, являющийся одновременно входным и
вы
ходным).
В

качестве результирующего значения функция
должна возвращать истину, если
K



положительное и ложь


в
противном случае.

С помощью этой процедуры поменять порядок
следования цифр на обратный для каждого из пяти данных целых
чисел.

.

Описать процеду
ру
s
ort4(
dir
,

A
,

B
,

C,

D
)
, меняющую
содержимое переменных

A
,

B
,

C
,

D

таким образом, чтобы их
значения оказались упорядоченными по возрастанию
, если
dir




равно

1

и по убыванию, если
dir

равно

1

(
dir



входной параметр,
A
,

B
,

C,

D



параметры, являющиеся одновременно входными и
выходными).
В

качестве результирующего значения функция
должна возвращать истину, если числа
A
,

B
,

C,


D


не совпадают и
ложь


в противном случае.
С помощью этой процедуры
.

.

.

.

.

.

.
.

.

.





4


упорядочить по возрастанию два дан
ных набора из
четы
рех чисел:
(
A
1
,

B
1
,

C
1
,

D
1
) и (
A
2
,

B
2
,

C
2
,

D
2
).

7.

Разработать

функцию
s
hift(
dir
,

A
,

B
,

C
)
, выполняющую
правый
циклический сдвиг

чисел
A
,

B
,

C

(
значение

A

переходит
в

B
, значение

B



в

C
, значение

C



в

A
)
, если
dir

равно 1 и левый
циклический сдвиг, если

dir

равно

1

(
dir



входной параметр, а
A
,
B
,

C



параметры, являющиеся одновременно входными и
выходными).
В

качестве результирующего значения функция
должна возвращать истину, если числа
A
,

B
,

C


не совпадают и
ло
жь


в противном случае.
С помощью этой процедуры
выполнить циклический сдвиг для двух данных наборов из трех
чисел: (
A
1
,

B
1
,

C
1
) и (
A
2
,

B
2
,

C
2
)

в заданных пользователем
направлениях
.

8.

Разработать

функцию
r
oot
s
Count(
A
,

B
,

C
,
x
1,
x
2
)

целого
типа, определяющую количество корней
и их значения
x
1

и

x
2
квадратного уравнения

A
·
x
2

+

B
·
x

+

C

=

0 (
A
,

B
,

C


в
ходные
,
x
1
,
x
2



выходные параметры
).


В

качестве результирующего значения
функция должна возвращать количество корней уравнения или
значение

1, если уравнение не является квадратным (т.е.
A

=

0
).
С
ее помощью найти количество корней для каждого из трех
квадратных уравнений с
за
данными
пользова
телем
коэффициентами.

.

Разработать

функцию
t
riangleP
S
2
(
a
,

h
,
P
,
S
)
, находящую
периметр
P

и площадь
S

равнобедренного треугольника по его
основанию

a

и

высоте

h
, проведенной к основанию (
a

и

h



в
ходные, а
P

и
S



выходные параметры
).
В

качестве
результирующего значения функция должна возвращать истину,
если числа значения
a

и

h

положительны и ложь


в противном
случае.
С помощью этой функции найти периметры трех
треугольников, для которых даны основания и высоты.


10.

Разработать

функцию
ca
lc
Range
SumAndProd
(
A
,

B,
S
,
P
)
целого типа, находящую сумму
S

и произведение
P

всех целых
чисел от
A
до
B
включительно (
A
и
B


целые

в
ходные

параметры,
а
P

и
S



выходные параметры
).

Если

A



B
, то функция
возвращает

0, иначе


количество целых чисел в
промежутке от
А

до
B

включительно.

С помощью этой функции найти суммы
и
произведения
чисел от

A

до

B

и от

B

до

C
, если даны числа

A
,

B
,

C
.

11.

Разработать

функцию

t
riangleP
S
3
(
x
1
,

y
1,
x
2,
y
2
,

x
3,
y
3
,
P
,
S
)
, находящую периметр
P

и площадь
S

треугольника по
координатам его вершин

(
x
1
,
y
1
,
x
2
,
y
2
,

x
3
,
y
3



в
ходные, а
P

и
S



выходные параметры
).
В

качестве результирующего значения
функция должна возвращать истину, если треугольник не
вырожден (т.е. все три его вершины не лежат на одной прямой) и
ложь


в противном случае.
С помощью этой функции найти
периметры трех треугольников, для которых
даны
к
оординаты их
вершин
.


12.

Разработать

функцию

sum
Vectors
(
xu
,

yu
,
xv
,
yv
,

xs
,
ys
)
,
вычисляющую для двух векторов

u
(
x
u
,
y
u
)

и

v
(
x
v
,
y
v
)

вектор
s
(
x
s
,
y
s
)
,
являющийся их суммой

(
x
u
,
y
u
,
x
v
,
y
v



в
ходные, а
x
s
,
y
s



выходные параметры
).
В

качестве результирующего значения
функция должна возвращать длину вектора
s
.
С помощью этой
функции найти
все попарные суммы

для
трех
заданных векторов
.





5


1.

Разработать

функцию

dotProduct
(
xu
,

yu
,

zu
,

xv
,
yv
,

zv
,

xp
,
yp
,
zp
)
,
вычисляющую для двух векторов

u
(
x
u
,
y
u
,
z
u
)

и


v
(
x
v
,
y
v
,
z
v
)

вектор
p
(
x
p
,
y
p
,
z
p
)
, являющийся их векторным
произведением

(
x
u
,

y
u
,
z
u
,

x
v
,
y
v
,
z
v



в
ходные, а
x
p
,
y
p
,
z
p



выходные параметры
).
В

качестве результирующего значения
функция должна возвращать длину вектора
p
.
С помощью этой
функции найти
все попарные

векторные произведения

для
трех
заданных векторов
.


1.

Разработать функцию
hypotenuse
(
a
,
b

)
, которая вычисляет
длину гипотенузы
c

прямоугольного треугольника по двум другим
сторонам

a

и
b
.
(
a

и
b



в
ходные

параметры, а
c



выходной
параметр
)
.

В

качестве результирующего значения функция должна
возвращать истину, если треугольник равнобедренный и ложь


в
противном случае.
С помощью этой функции найти
гипотенузы
трех треугольников, для которых
заданы их катеты
.


15.

Разработать

функцию

t
riangle
RR
(
a
,

b
,
c
,
r
,
R
)
, находящую
для треугольника со сторонами
a
,
b
,
c

радиус вписанной
окружности
r

и радиус описанной окружности
R

(
a
,
b
,
c



в
ходные, а
r

и
R



выходные параметры
).
В

качестве
результирующего значения функция должна возвращать истину,
если возможно построить треугольник со сторонами
a
,
b
,
c

и ложь


в противном случае.
С помощью этой функции найти
радиусы
вписанных и описанных окружностей
трех треугольников

разных
типо
в (остроугольного, прямоугольного и тупоугольного)
.


1.

Разработать

функцию
parabolaVertex
(
A
,

B
,

C
,
x
,
y
)
,
определяющую ко
ординаты вершины параболы

v
(
x
,
y
), заданной
уравнением
A
·
x
2

+

B
·
x

+

C

=

0 (
A
,

B
,

C


в
ходные,
x
,
y



выходные

параметры).


В

качестве результирующего значения функция
должна возвращать

1, если парабола направлена ветвями вниз, 1


ветвями вверх и 0, если парабола вырождена (т.е.
A

=

0
).
С
помощью
функции
найти ко
ординаты вершин
трех
парабол с
заданными пользователем коэффицие
нтами
.

17.

Разработать

функцию

cartesianTo
Polar
(
x
,

y
,
r
,
phi
)
,
переводящую
декартовы
координаты
точки (
x
,
y
) в

полярные
координаты (
r
,

)

(
x
,
y



в
ходные, а
r
,




выходные параметры
).
В

качестве результирующего значения функция должна
возвращать истину, если (
x
,
y
) не является началом координат

и
ложь


в противном случае.
С помощью этой функции
преобразовать координаты трех заданных пользователем точек из
декартовой в полярную систему к
оординат
.


18.

Разработать

функцию

polarToCartesian
(
r
,
phi
,
x
,

y
)
,
переводящую
полярные
координаты
точки (
r
,

)


в

декартовы
координаты (
x
,
y
)
(
r
,




в
ходные, а
x
,
y



выходные параметры
).
В

качестве результирующего значения функция должна
возвращать номер четверти, в которой располагается точка
;

0, если
точка лежит в начале координат
;


1,
если точка лежит на оси
Ox
;



2
,
если точка лежит на оси
O
y
.
С помощью этой функции
преобразовать коорд
инаты трех заданных пользователем точек из
полярной в декартову
систему координат

с определением
местоположения точки (той или иной четверти, той или иной оси
координат, начала координат).


.

.

.

.

.

.

.
.

.

.





6


1.

Разработать

функцию

lineEquation
(
x
1
,

y
1
,
x
2
,
y
2
,

A
,
B
,
C
)
,
вычисляющую коэффициенты канонического уравнения
прямой
A
·
x

+

B
·
y

+

C

=

0
по координатам двух
заданных точек

(
x
1
,
y
1
)

и

(
x
2
,
y
2
)

(
x
1
,
y
1
,
x
2
,
y
2



в
ходные, а
A
,
B
,
C



выходные
параметры
).
В

качестве результирующего значения функция
должна возвращать
истину
, если две заданные
точки

не совпадают,
и ложь в противном случае.
С помощью этой функции найти
уравнения прямых, проходящих через все пары точек
,

сформированные

из заданной пользователем
тр
ойки

точек
.


20.

Разработать

функцию

intersectIntervals
(
a
,

b
,
c
,
d
,
e
,
f
)
, находящую
интервал [
e
,

f
]
, являющийся пересечением
интервалов

[
a
,

b
] и [
c
,

d
]

(
a
,
b
,
c
,
d



в
ходные, а
e
,

f



выходные
параметры
).
В

качестве результирующего значения функция
должна возвращать истину, если
входные интервалы заданы
корректно (
a


b

и
c


d
) и
результирующее пересечение интервалов
не пусто
;

в противном случае

функция должна возвращать ложь
.
С
помощью этой функции найти
попарные пересечения трех
заданных пользователем интервалов
.


21.

Разработать

функцию

unite
Intervals
(
a
,

b
,
c
,
d
,
e
,
f
)
,
находящую
интервал [
e
,

f
], являющийся

объедине
нием интервалов

[
a
,

b
] и [
c
,

d
]

(
a
,
b
,
c
,
d



в
ходные, а
e
,

f



выходные параметры
).
В

качестве результирующего значения функция должна
возвращать истину, если входные интервалы заданы корректно
(
a


b

и
c


d
)
;

в противном случае функция должна возвращать
ложь.
С помощью этой функции найти
попарные объединения трех
заданных пользователем интервалов
.


22.

Разработать

функцию

invMatrix
(
a
11
,

a
12
,
a
21
,
a
22
,
b
11
,

b
12
,
b
21
,
b
22
)
,
вычисляющую
для матрицы














обратную

к

ней
















(
a
11
,
a
12
,
a
21
,
a
22



в
ходные, а
b
11
,
b
12
,
b
21
,
b
22



выходн
ые

параметр
ы
).
В

качестве
результирующего значения функция должна возвращать истину,
если
матрица
A

невырождена (т.е. её определитель отличен от
нуля),

в противном случае функция должна возвращать ложь.
С
помощью этой функции
для
каждой из
трех заданных
пользователем
матриц найти обратн
ую

к н
ей

и проверить
совпадение с единичной
матрицей
произведени
я прямой и
найденной
обратной матриц
.


2.

Разработать

функци
ю

addRational
(
a
,

b
,
c
,
d
,
e
,
f
)
,

вычисляющую

сумму двух обыкновенных дробей










(
a
,
b
,
c
,
d



в
ходные, а
e
,

f



выходные параметры
).
В

качестве
результирующего значения функция должна возвращать истину,
если входные дроби заданы корректно (их знаменатели отличны от
нуля)
;

в противном случае функция должна возвращать ложь.
С
помощью этой функции найти
попарные суммы трех заданных
пользова
телем обыкновенных дробей
.


2.

Разработать

функцию

timeDiff
(
h
1
,

m
1
,
h
2
,
m
2
,
h
,
m
)
,

вычисляющую длину временного промежутка
h

часов
m

минут
между двумя моментами времени


начальным

(
h
1

часов
m
1

минут) и конечным (
h
2

часов
m
2

минут) в пределах одних суток

(
h
1
,

m
1
,

h
2
,

m
2



в
ходные, а
h
,

m



выходные параметры
).
В

качестве
результирующего значения функция должна возвращать истину,
если входные данные корректны (начальный момент времени



7


предшествует конечному)
;

в противном случае функция должна
возвращать ложь.
С

помощью этой функции найти
попарные
разности для трех заданных пользователем моментов времени
.


25.

Разработать

функцию

addDays
(
d
1,

m
1,
days
,
d
2
,
m
2
)
,

вычисляющую
дату
(
d
2
,
m
2
), отстоящую от заданной даты (
d
1
,
m
1
)
на количество дней
days

(
здесь
d
i



номер дня месяца,
m
i



номер
месяца
)
(
d
1
,
m
1
,

days



в
ходные, а
d
2
,

m
2



выходные параметры
).
Високосность года можно не учитывать.
В

качестве
результирующего значения функция должна возвращать истину,
если входн
ая

дата корректна
;

в противном случае фун
кция должна
возвращать ложь.
С помощью этой функции найти
три даты,
отстоящие от заданной пользователем на различное количество
дней
.


.

.

.

.

.

.

.
.

.

.





8


Варианты
з
адани
й

по теме

«
Функции и структура программы
»

1.

Гараж
.

Гараж

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

функции



inputData

для организации ввода исходных данны
х;



calculate
Time

для
вычисл
ения

длительности

парковки на
текущий момент

для
определенного
автомобиля
;




calculateCharges

для определения платы

клиента
;



printTable

для печати
отчетной
таблицы.

Отчетная таблица

должн
а

с
одержать

сведения о времени стоянки
на
текущий момент

и

начисленной плате по каждом
у

из
автомобилей, а также строку с
итог
ами.

Таблица должна иметь
следующий

вид
:

Авто

Вре
мя, ч Плата, руб

1


1.5 50

2 4.0 70

3 24.0 260

Итого

2
9
.
5

38
0

2.

Зарплата.

Зарплата прода
вцов

химической компании формируется
из комиссионных вознаграждений. Продавцы получают
12

тыс.
рублей в месяц плюс
8%

от их валовых продаж за этот месяц.
Продавцы уплачивают
с заработной платы
подоходный налог по
ставке 1%, если су
мма
зарплаты
не превышает 100 тыс. руб.,

и

по
ставке 2% в остальных случаях
.
Например, продавец
реализующий за месяц химических препаратов на
300

тыс.

рублей,
получает 12 тыс. рублей плюс 8 процентов от 00 тыс. руб., или в
сумме  тыс. рублей

до уплаты
налога

и 120 руб
.
п
осле
налоговых отчислений.
Разработайте программу для ввода валовых
продаж для
трёх

продавцов за последний месяц, расчет
а

и
отображения на экране
их

заработк
ов
. В программе должны быть
реализованы
, как минимум,

следующие
функции



input
Data

для организации ввода исходных данных

по
одному продавцу
;



calculate
Income

для вычисления
размера заработка
продавца
до уплаты налогов
в зависимости от объема его
продаж
;



calculate
Tax
es

для определения налоговых выплат
;



calculate
Salary

для вычисления
«чистого»
размера
заработка
продавца в зависимости от объема его продаж и с
учетом уплаченных налогов
;



printTable

для печати
зарплатной ведомости
.

Зарплатная ведомость должна содержать сведения о
б объеме
продаж
,

заработной плате до и после
удержания налогов по
каждому продавцу, а также строку с итогами.

Таблица должна
иметь

следующий

вид
:

Таб.

номер

Продажи,

руб


ЗП,

руб ЗП
-
Налог,

руб

1

300000
,00



36000,00 31320,00

2 480500,00 50440,00
43882,80

3 1200000,00 108000,00 82080,00

Итого

1980500,00 194440,00 157282,80




9


.

Кросс.

В рамках
университетского
Д
ня спорта в соревнованиях по
кроссу

участвуют
команды

факультетов
, состоящие из трех

преподавателей
. При этом

в
зач
ё
т
идут
дв
а

лучши
х

результата
команды.
Результат участника выражается
целочисленной
оценкой
R

в баллах
:
R

=
K
(
1
5
0
0



T
),

где
Т



время прохождения дистанции
в секундах,
K



возрастной
коэффициент

(равен 1.0, если возраст
участника не

более

25 лет, 1.
13
, если возраст от 2 до 5 лет и 1.
45



для возраста свыше 5 лет)
.

Разработать программу,
запрашивающую время старта (
M
S
tart

мин
S
S
tart

сек), время финиша
(
M
Finish

мин
S
Finish

сек)
и возраст
каждого из

трех
членов

одной
команды, вычисляющую результаты к
аждого из участников
команды, сумму двух лучших результатов в команде и выводящую
эти сведения на экран в табличном виде.

В программе должны
быть реализованы, как минимум, следующие функции



inputData

для организации ввода исходных данных;



calculate
Time

для вычисления
времени
(
в секундах
)
прохождения дистанции участником

по времени старта и
финиша
;



calculate
AgeCoeff

для
определения возрастного
коэффициента
K

по возрасту участника
;



calculate
Result

для
вычисления балльной оценки участника
по времени прохож
дения дистанции и возрастному
коэффициенту
;



printTable

для печати
отчетной
таблицы.

Отчетная таблица

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

Таблица

должна

иметь

следующий

вид
:

Номер

Возраст, лет
Время,
с

Результат

1

24


193 1367

2

4
1


427 1212

3

66


634 1256

Результат команды


2623

.

Оценки
.

Успехи студента при изучении одной темы в курсе
программирования оцениваются как среднее арифметическое
оценки за лабораторную работу и оценки за тест

(все оценки


по
пятибалльной шкале).
В свою очередь оценка за л
абораторн
ую
работ
у является средним арифметическим оценок за каждую из
двух задач, входящих в лабораторную работу. Оценка за тест
зависит от процента правильно данных ответов
P
:
оценка «5», если
P



90%
;

«», если 70


P

90
;

«»
, если 5
0


P

7
0
;
«2», в
остальных случаях. Из двух попыток сдать тест в зачет идет
лучшая. Разработайте программу, которая будет вычислять и
печатать оценки за тему для трех студентов.
Пользователь
программы должен указать для каждого студента оценки за две
задачи и процен
ты правильных ответов теста в двух попытках.
В
программе должны быть реализованы, как минимум, следующие
функции



inputData

для организации ввода исходных данных;



average

для
вычисления среднего арифметического
;



calculate
TestMark

для вычисления
оценки за
тест по
проценту правильных ответов в каждой попытке
;



calculate
LabMark

для
вычисления оценки за лабораторную
работу по оценкам за задачи
;



printTable

для печати
отчетной
таблицы.

.

.

.

.

.

.

.
.

.

.





10


Отчетная таблица

должна содержать
для каждого студента две
оценки за задачи, п
роценты правильных ответов в двух попытках
теста, оценку за лабораторную работу, оценку за тест и оценку за
тему
, а также строку с
о средними показателями
.

Таблица должна
иметь

следующий

вид
:





Зад. 1 Зад. 2 Тест 1 Тест 2 Лаб.раб. Тест Тема

1

5


5

50

80

5

4 5

2


4

4

2
0
6
0

4


3

4

3


0

4

50
4
0

2


3

3

Среднее

3.0 4.3 40 60 3.6 3.3 4

5.

Такси.

Проезд в такси оплачивается по счетчику километража.
Стоимость преодоления одного километра


12 руб. вне
зависимости от количества пассажиров. Дополнительно
оплачивается провоз багаж по цене 50 руб. за одно место.
Разработайте программу, которая будет выч
ислять и печатать
таблицу платежей для трех пассажиров, одновременно севших в
такси, на момент выхода каждого из них, если совместно
преодоленный километраж они оплачивают в равных долях, а за
багаж каждый платит самостоятельно. Пользователь программы
указ
ывает для каждого пассажира количество мест багажа и
показание счетчика километража на момент его выхода.

В
программе должны быть реализованы, как минимум, следующие
функции



inputData

для организации ввода исходных данных;



calculateCharge
s

для определения платы

i
-
го

пассажир
а
;



calculate
Totals

для определения
суммарной платы,
которую должен получить
за услуги
таксист
;



printTable

для печати
отч
ё
тной
таблицы.

Отчетная таблица

должна содержать сведения о
количестве мест
провезенного багажа, пре
одоленном пассажиром расстоянии и его
плате
.

Таблица

должна

иметь

следующий

вид
:

№ пассажира

Багаж
, шт


Расстояние
, км


Плата, руб.

1

1



1.6 56.4

2


0




3.4 17.2

3


2




4.2 126.8

Итого

3 4.2

200.4

.

Тариф
.

Оператор мобильной связи запустил новый тариф. По
условиям тарифа абонент получает в конце месяца на лицевой счёт
бонус в 150 рублей, если
в течении месяца
абонентом превышены
пороги по двум из трех типов услуг
:
отправке MMS, отправке SMS
общей длительности разговоров. Значения порогов:
10

MMS,
50
SMS
, 100
минут разговоров.

Кроме того, если сумма на лицевом
счете в этот момент превышает
20
0 рублей, она увелич
ивается на
5% перед начислением бонуса. Стоимость услуг: MMS: 2.5
руб/шт.;

SMS
: 0.2 руб/шт; разговор: 0.
15

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

лицевых счетов для трёх абонентов, использующих новый тариф.
На вход
программа должна получать сумму на лицевом счете в
начале месяца, количество MMS, SMS и длительность разговоров
за этот месяц

для каждого из трёх абонентов.

В программе должны
быть реализованы, как минимум, следующие функции



inputData

для организации ввод
а исходных данных;



calculate
Charges

для определения
стоимости потребленных
за месяц услуг
;



bonusMustBeAdded

определ
яющую, может ли быть начислен
бонус
;




11




calculate
Totals

для определения
сумм
ы

на лицевом счете в
начале следующего месяца
;



printTable

для печати
отчётной
таблицы.

Отчетная таблица

должна содержать
сведения о состоянии
лицевого счета на начало месяца, объеме потребленных услуг,
остатке средств на счете на конец месяца и сумме в начале
следующего
месяца
с уч
ё
том начислений по условиям тар
ифа
, а
также строку со средними значениями
:




Исходно

MMS


SMS Минут Остаток



Остаток
+премии

1

333
.00



2



43



132


299
.6
0

6
14
.
18

2




112.00


0


67



225




64
.
85

214
.
85

3



245.00 13

15


117 191.95 341.95

Сред
: 230.00


5



4
2



158 185.47 390.33

7.

Чемпионат

по программированию.

В командном чемпионате
мира по программированию

п
обеждает команда, решившая
правильно наибольшее число задач. Если несколько команд
решают
одинаковое количество задач, то их положение в рейтинге
определяется штрафным временем. Изначально штрафное время
каждой команды равно нулю. За каждую правильно сданную
задачу к штрафному времени команды прибавляют время,
прошедшее с начала соревнования до

момента сдачи задачи. Кроме
того, если зачтённой попытке предшествовало несколько
неудачных попыток сдать ту же задачу, то за каждую из них к
штрафному времени прибавляют двадцать минут. За неудачные
попытки сдать задачу, которую команде в итоге так и не
удалось
решить, штрафного времени не начисляется
.


Разработайте программу, которая будет определять чемпиона
среди трех команд с наилучшими показателями и печатать
турнирную таблицу. Общее количество задач, предложенных
командам равно трём. Пользователь
программы задаёт для каждой
команды количество попыток, потраченных командой на решение
каждой задачи. В случае, если задача решена, количество попыток
задаётся положительным числом и дополнительно указывается
время решения задачи (
H

часов
M

минут
S

секунд
).
Если задача не
решена, то количество попыток задаётся отрицательным числом.

В
программе должны быть реализованы, как минимум, следующие
функции



inputData

для организации ввода исходных данных;



c
ountSolvedProblems

для
подсчета решенных задач.
;



calculate
Penalty

для
вычисления штрафного времени
команды
;



printTable

для печати
отчётной
таблицы.

Отчетная таблица

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

(при
совпадении количества решенных задач)
. Таблица должна иметь
с
ледующий вид
:


команды

Зад
.

A

Зад
.

B

Зад
.

C


Решено Штраф
, мин

1

+2

+1

+
1


3

7
34.3

2


+2


+3




+1

3 1
3
85.5

3


-
3


+5


+2

2


19
12.8

Р
ешило
:


2

3


3

.

.

.

.

.

.

.
.

.

.





12


8.

Стипендия
.

Сессия включает в себя экзамены по трём
дисциплинам
: «Алгебра», «Математический анализ» и «Языки и
методы программирования».

Студентам, не сдавшим хотя бы один
экзамен, стипендия не выплачивается. С
тудентам, сдавшим все
экзамены не ниже, чем на 
,

начисляется базовая стипендия
из
расчета
25
0 рублей за каждый балл.
Хорошисты (у
спевающие
студенты
, не имеющие троек) дополнительно получают надбавку в
25%.


Отличники (студенты, сдавшие все экзамен
ы

на 5) получают
надбавку 50%.

Разработайте программу, которая будет вычислять
размер стипендии для трёх студентов
и печатать
стипендиальную
ведомость
, получая,

н
а вход
экзаменационные оценки

каждого
студента
. В программе должны быть реализованы, как минимум,
следующие функции



inputDa
ta

для организации ввода исходных данных;



calculate
Scholarship

для определения

размера стипендии
;



calculate
QuantitivePerformance

для
вычисл
ения

количественн
ой

успеваемост
и по определённой дисциплине
(процента оценок по дисциплине, не ниже )
;



calculate
Qua
litative
Performance

для
вычисл
ения

к
ачественной
успеваемост
и по определённой дисциплине
(процент оценок по дисциплине, не ниже )
;



printTable

для печати
отчётной
таблицы.

Отчетная таблица

должна содержать сведения о
б оценках
, размер
стипендии
, а
также
две итоговых строки с количественной и
качественной успеваемостью по каждой дисциплине
:


студента


Алгебра

Мат. ан
.



ЯМП


Стипендия, руб

1




3 3 4


2500.00

2




4 4 5


4062
.
5
0

3




5

5

5



5625
.00

Кол
.
усп., %
:

1
00
.0



100
.0


100
.0

Кач.

усп., %
:


33.3



66.7 100
.0

.

Абитуриенты
.

Зачисление абитуриента в университет
производится, если суммарное количество баллов
ЕГЭ
по трём
предметам

(математика, физика, русский язык) превышает
проходной балл или балл ЕГЭ по математике или физике равен
100.

Разработайте программу, которая
,

получая на вход
значение
суммарного проходного балла ЕГЭ и
баллы ЕГЭ трёх
абитуриентов, определяет, подлежат ли о
ни зачислению в
университет
. В программе должны быть реализованы, как
минимум, следующие функции



inputData

для организации ввода исходных данных;



calculate
Totals

для определения

суммарного балла ЕГЭ
некоторого
абитуриента
;



isAdmitted
,

определяющую,
зачислен ли абитуриент
;



printTable

для печати
отчётной
таблицы.

Отчетная таблица

должна содержать
для каждого
абитуриента

сведения о

баллах ЕГЭ

по каждому предмету, суммарный балл

и
статус
поступающего
(зачислен
/не зачислен
)
, а также две итоговых
строки
:
со средними баллами по предметам

и с общим
количеством зачисленных
.

Проходной балл: 200


абитур.


Математика

Физика


Рус.яз.


Сумма Статус

1



78


83


4
6


207


зачислен

2



100 77 80 257 зачислен

3



48
5
3

39

140


не зачислен

Средний балл
:


75




7
1



55



20
1

Зачислено
:




2




13


10.

Штангист
ы
.

Победитель в соревнованиях по тяжёлой атлетике
определяется по сумме весов, взятых в двух упражнениях


толчке и рывке. При равенстве сумм весов у нескольких атлетов,
победителем считается имеющий меньший собственный вес.
Разработайте программу, которая, п
олучая на вход
значения весов,
взятых в то
л
чке и рывке тремя тяжелоатлетами, выводит на экран
турнирную таблицу упорядоченную
по возрастанию мест, занятых
атлетами
. В программе должны быть реализованы, как минимум,
следующие функции



inputData

для организации ввода исходных данных;



calculate
Total

для определения

суммарного
веса, взятого в
двух упражнениях
;



is
Higher
,

определяющую,
должен ли
быть расположен
один
атлет в турнирной таблице выше другого по их суммарным и
собственным весам
;



printTab
le

для печати
отчётной
таблицы.

Отчетная таблица

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

Проходной балл: 200

№ а
тлета


Собств. вес

Толчок


Р
ывок


Сумма
Место

1




8
5.5

120.0


150.0


27
0.0


1

2



86.0 115.0 155.0 270.0 2

3



85.0 110.0 147.5 257.5 3

Итого
:


85.0



120.0


1
55
.0

2
7
0
.0

11.

Гараж
.

Гараж

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

функции



inputData

для организации ввода исходных данны
х;



calculate
Time

для
вычисл
ения

длительности

парковки на
текущий момент

для
определенного
автомобиля
;




calculateCharges

для определения платы

клиента
;



printTable

для печати
отчетной
таблицы.

Отчетная таблица

должн
а

с
одержать

сведения о времени стоянки
на
текущий момент

и

начисленной плате по каждом
у

из
автомобилей, а также строку с
итог
ами.

Таблица должна иметь
следующий

вид
:

Авто

Вре
мя, ч Плата, руб

1


1.5 50

2 4.0 70

3 24.0 260

Итого

2
9
.
5

38
0

12.

Зарплата.

Зарплата прода
вцов

химической компании формируется
из комиссионных вознаграждений. Продавцы получают
12

тыс.
рублей в месяц плюс
8%

от их валовых продаж за этот месяц.
Продавцы уплачивают
с заработной платы
подоходный налог по
ставке 1%, если су
мма
зарплаты
не превышает 100 тыс. руб.,

и

по
ставке 2% в остальных случаях
.
Например, продавец
.

.

.

.

.

.

.
.

.

.





14


реализующий за месяц химических препаратов на
300

тыс.

рублей,
получает 12 тыс. рублей плюс 8 процентов от 00 тыс. руб., или в
сумме  тыс. рублей

до уплаты
налога

и 120 руб
.
п
осле
налоговых отчислений.
Разработайте программу для ввода валовых
продаж для
трёх

продавцов за последний месяц, расчет
а

и
отображения на экране
их

заработк
ов
. В программе должны быть
реализованы
, как минимум,

следующие
функции



input
Data

для организации ввода исходных данных

по
одному продавцу
;



calculate
Income

для вычисления
размера заработка
продавца
до уплаты налогов
в зависимости от объема его
продаж
;



calculate
Tax
es

для определения налоговых выплат
;



calculate
Salary

для вычисления
«чистого»
размера
заработка
продавца в зависимости от объема его продаж и с
учетом уплаченных налогов
;



printTable

для печати
зарплатной ведомости
.

Зарплатная ведомость должна содержать сведения о
б объеме
продаж
,

заработной плате до и после
удержания налогов по
каждому продавцу, а также строку с итогами.

Таблица должна
иметь

следующий

вид
:

Таб.

номер

Продажи,

руб


ЗП,

руб ЗП
-
Налог,

руб

1

300000
,00



36000,00 31320,00

2 480500,00 50440,00
43882,80

3 1200000,00 108000,00 82080,00

Итого

1980500,00 194440,00 157282,80

1.

Такси.

Проезд в такси оплачивается по счетчику километража.
Стоимость преодоления одного километра


12 руб. вне
зависимости от количества пассажиров. Дополнительно
оплачивается провоз багаж по цене 50 руб. за одно место.
Разработайте программу, которая будет выч
ислять и печатать
таблицу платежей для трех пассажиров, одновременно севших в
такси, на момент выхода каждого из них, если совместно
преодоленный километраж они оплачивают в равных долях, а за
багаж каждый платит самостоятельно. Пользователь программы
указ
ывает для каждого пассажира количество мест багажа и
показание счетчика километража на момент его выхода.

В
программе должны быть реализованы, как минимум, следующие
функции



inputData

для организации ввода исходных данных;



calculateCharge
s

для определения платы

i
-
го

пассажир
а
;



calculate
Totals

для определения
суммарной платы,
которую должен получить
за услуги
таксист
;



printTable

для печати
отч
ё
тной
таблицы.

Отчетная таблица

должна содержать сведения о
количестве мест
провезенного багажа, пре
одоленном пассажиром расстоянии и его
плате
.

Таблица

должна

иметь

следующий

вид
:

№ пассажира

Багаж
, шт


Расстояние
, км


Плата, руб.

1

1



1.6 56.4

2


0




3.4 17.2

3


2




4.2 126.8

Итого

3 4.2

200.4

1.

Оценки
.

Успехи студента при изучении одной темы в курсе
программирования оцениваются как среднее арифметическое
оценки за лабораторную работу и оценки за тест

(все оценки


по
пятибалльной шкале).
В свою очередь оценка за л
абораторн
ую



15


работ
у является средним арифметическим оценок за каждую из
двух задач, входящих в лабораторную работу. Оценка за тест
зависит от процента правильно данных ответов
P
:
оценка «5», если
P



90%
;

«», если 70


P

90
;

«»
, если 5
0


P

7
0
;
«2», в
остальных случаях. Из двух попыток сдать тест в зачет ид
ё
т
лучшая. Разработайте программу, которая будет вычислять и
печатать оценки за тему для трех студентов.
Пользователь
программы должен указать для каждого студента оценки за две
задачи и процен
ты правильных ответов
на
тест

в двух попытках.
В
программе должны быть реализованы, как минимум, следующие
функции



inputData

для организации ввода исходных данных;



average

для
вычисления среднего арифметического
;



calculate
TestMark

для вычисления
оценки за
тест по
проценту правильных ответов в каждой попытке
;



calculate
LabMark

для
вычисления оценки за лабораторную
работу по оценкам за задачи
;



printTable

для печати
отчетной
таблицы.

Отчетная таблица

должна содержать
для каждого студента две
оценки за задачи, п
роценты правильных ответов в двух попытках
теста, оценку за лабораторную работу, оценку за тест и оценку за
тему
, а также строку с
о средними показателями
.

Таблица должна
иметь

следующий

вид
:





Зад. 1 Зад. 2 Тест 1 Тест 2 Лаб.раб. Тест Тема

1

5


5

50

80

5

4 5

2


4

4

2
0
6
0

4


3

4

3


0

4

50
4
0

2


3

3

Среднее

3.0 4.3 40 60 3.6 3.3 4

15.

Кросс.

В рамках
университетского
Д
ня спорта в соревнованиях по
кроссу

участвуют
команды

факультетов
, состоящие из трех

преподавателей
. При этом

в
зач
ё
т
идут
дв
а

лучши
х

результата
команды.
Результат участника выражается
целочисленной
оценкой
R

в баллах
:
R

=
K
(
1
5
0
0



T
),

где
Т



время прохождения дистанции
в секундах,
K



возрастной
коэффициент

(равен 1.0, если возраст
участника не

более

25 лет, 1.
13
, если возраст от 2 до 5 лет и 1.
45



для возраста свыше 5 лет)
.

Разработать программу,
запрашивающую время старта (
M
S
tart

мин
S
S
tart

сек), время финиша
(
M
Finish

мин
S
Finish

сек)
и возраст
каждого из

трех
членов

одной
команды, вычисляющую результаты к
аждого из участников
команды, сумму двух лучших результатов в команде и выводящую
эти сведения на экран в табличном виде.

В программе должны
быть реализованы, как минимум, следующие функции



inputData

для организации ввода исходных данных;



calculate
Time

для вычисления
времени
(
в секундах
)
прохождения дистанции участником

по времени старта и
финиша
;



calculate
AgeCoeff

для
определения возрастного
коэффициента
K

по возрасту участника
;



calculate
Result

для
вычисления балльной оценки участника
по времени прохож
дения дистанции и возрастному
коэффициенту
;



printTable

для печати
отчетной
таблицы.

Отчетная таблица

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

Таблица

должна

иметь

следующий

вид
:

.

.

.

.

.

.

.
.

.

.





16


Номер

Возраст, лет
Время,
с

Результат

1

24


193 1367

2

4
1


427 1212

3

66


634 1256

Результат команды


2623

1.

Тариф
.

Оператор мобильной связи запустил новый тариф. По
условиям тарифа абонент получает в конце месяца на лицевой счёт
бонус в 150 рублей, если
в течении месяца
абонентом превышены
пороги по двум из трех типов услуг
:
отправке MMS, отправке SMS
общей длительности разговоров. Значения порогов:
10

MMS,
50
SMS
, 100
минут разговоров.

Кроме того, если сумма на лицевом
счете в этот момент превышает
20
0 рублей, она увелич
ивается на
5% перед начислением бонуса. Стоимость услуг: MMS: 2.5
руб/шт.;

SMS
: 0.2 руб/шт; разговор: 0.
15

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

лицевых счетов для трёх абонентов, использующих новый тариф.
На вход
программа должна получать сумму на лицевом счете в
начале месяца, количество MMS, SMS и длительность разговоров
за этот месяц

для каждого из трёх абонентов.

В программе должны
быть реализованы, как минимум, следующие функции



inputData

для организации ввод
а исходных данных;



calculate
Charges

для определения
стоимости потребленных
за месяц услуг
;



bonusMustBeAdded

определ
яющую, может ли быть начислен
бонус
;



calculate
Totals

для определения
сумм
ы

на лицевом счете в
начале следующего месяца
;



printTable

для печати
отчётной
таблицы.

Отчетная таблица

должна содержать
сведения о состоянии
лицевого счета на начало месяца, объеме потребленных услуг,
остатке средств на счете на конец месяца и сумме в начале
следующего
месяца
с уч
ё
том начислений по условиям тар
ифа
, а
также строку со средними значениями
:




Исходно

MMS


SMS Минут Остаток



Остаток
+премии

1

333
.00



2



43



132


299
.6
0

6
14
.
18

2




112.00


0


67



225




64
.
85

214
.
85

3



245.00 13

15


117 191.95 341.95

Сред
: 230.00


5



4
2



158 185.47 390.33

17.

Чемпионат

по программированию.

В командном чемпионате
мира по программированию

п
обеждает команда, решившая
правильно наибольшее число задач. Если несколько команд
решают
одинаковое количество задач, то их положение в рейтинге
определяется штрафным временем. Изначально штрафное время
каждой команды равно нулю. За каждую правильно сданную
задачу к штрафному времени команды прибавляют время,
прошедшее с начала соревнования до

момента сдачи задачи. Кроме
того, если зачтённой попытке предшествовало несколько
неудачных попыток сдать ту же задачу, то за каждую из них к
штрафному времени прибавляют двадцать минут. За неудачные
попытки сдать задачу, которую команде в итоге так и не
удалось
решить, штрафного времени не начисляется
.


Разработайте программу, которая будет определять чемпиона
среди трех команд с наилучшими показателями и печатать
турнирную таблицу. Общее количество задач, предложенных
командам равно трём. Пользователь
программы задаёт для каждой
команды количество попыток, потраченных командой на решение



17


каждой задачи. В случае, если задача решена, количество попыток
задаётся положительным числом и дополнительно указывается
время решения задачи (
H

часов
M

минут
S

секунд
).
Если задача не
решена, то количество попыток задаётся отрицательным числом.

В
программе должны быть реализованы, как минимум, следующие
функции



inputData

для организации ввода исходных данных;



c
ountSolvedProblems

для
подсчета решенных задач.
;



calculate
Penalty

для
вычисления штрафного времени
команды
;



printTable

для печати
отчётной
таблицы.

Отчетная таблица

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

(при
совпадении количества решенных задач)
. Таблица должна иметь
с
ледующий вид
:


команды

Зад
.

A

Зад
.

B

Зад
.

C


Решено Штраф
, мин

1

+2

+1

+
1


3

7
34.3

2


+2


+3




+1

3 1
3
85.5

3


-
3


+5


+2

2


19
12.8

Р
ешило
:


2

3


3

18.

Стипендия
.

Сессия включает в себя экзамены по трём
дисциплинам
: «Алгебра», «Математический анализ» и «Языки и
методы программирования».

Студентам, не сдавшим хотя бы один
экзамен, стипендия не выплачивается. С
тудентам, сдавшим все
экзамены не ниже, чем на 
,

начисляется базовая стипендия
из
расчета
25
0 рублей за каждый балл.
Хорошисты (у
спевающие
студенты
, не имеющие троек) дополнительно получают надбавку в
25%.


Отличники (студенты, сдавшие все экзамен
ы

на 5) получают
надбавку 50%.

Разработайте программу, которая будет вычислять
размер стипендии для трёх студентов
и печатать
стипендиальную
ведомость
, получая,

н
а вход
экзаменационные оценки

каждого
студента
. В программе должны быть реализованы, как минимум,
следующие функции



inputDa
ta

для организации ввода исходных данных;



calculate
Scholarship

для определения

размера стипендии
;



calculate
QuantitivePerformance

для
вычисл
ения

количественн
ой

успеваемост
и по определённой дисциплине
(процента оценок по дисциплине, не ниже )
;



calculate
Qua
litative
Performance

для
вычисл
ения

к
ачественной
успеваемост
и по определённой дисциплине
(процент оценок по дисциплине, не ниже )
;



printTable

для печати
отчётной
таблицы.

Отчетная таблица

должна содержать сведения о
б оценках
студентов, размер стипендии
, а
также
две итоговых строки с
количественной и качественной успеваемостью по каждой
дисциплине
:


студента


Алгебра

Мат. ан
.



ЯМП


Стипендия, руб

1




3 3 4


2500.00

2




4 4 5


4062
.
5
0

3




5

5

5



5625
.00

Кол
.
усп., %
:

1
00
.0



100
.0


100
.0

Кач.

усп., %
:


33.3



66.7 100
.0

.

.

.

.

.

.

.
.

.

.





18


1.

Абитуриенты
.

Зачисление абитуриента в университет
производится, если суммарное количество баллов
ЕГЭ
по трём
предметам

(математика, физика, русский язык) превышает
проходной балл или балл ЕГЭ по математике или физике равен
100.

Разработайте программу, которая
,

получая на вход
значение
суммарного проходного балла ЕГЭ и
баллы ЕГЭ трёх
абитуриентов, определяет, подлежат ли о
ни зачислению в
университет
. В программе должны быть реализованы, как
минимум, следующие функции



inputData

для организации ввода исходных данных;



calculate
Totals

для определения

суммарного балла ЕГЭ
некоторого
абитуриента
;



isAdmitted
,

определяющую,
зачислен ли абитуриент
;



printTable

для печати
отчётной
таблицы.

Отчетная таблица

должна содержать
для каждого
абитуриента

сведения о

баллах ЕГЭ

по каждому предмету, суммарный балл

и
статус
поступающего
(зачислен
/не зачислен
)
, а также две итоговых
строки
:
со средними баллами по предметам

и с общим
количеством зачисленных
.

Проходной балл: 200


абитур.


Математика

Физика


Рус.яз.


Сумма Статус

1



78


83


4
6


207


зачислен

2



100 77 80 257 зачислен

3



48
5
3

39

140


не зачислен

Средний балл
:


75




7
1



55



20
1

Зачислено
:




2

20.

Штангист
ы
.

Победитель в соревнованиях по тяжёлой атлетике
определяется по сумме весов, взятых в двух упражнениях


толчке и рывке. При равенстве сумм весов у нескольких атлетов,
победителем считается имеющий меньший собственный вес.
Разработайте программу, которая, п
олучая на вход
значения весов,
взятых в то
л
чке и рывке тремя тяжелоатлетами, выводит на экран
турнирную таблицу упорядоченную
по возрастанию мест, занятых
атлетами
. В программе должны быть реализованы, как минимум,
следующие функции



inputData

для организации ввода исходных данных;



calculate
Total

для определения

суммарного
веса, взятого в
двух упражнениях
;



is
Higher
,

определяющую,
должен ли
быть расположен
один
атлет в турнирной таблице выше другого по их суммарным и
собственным весам
;



printTab
le

для печати
отчётной
таблицы.

Отчетная таблица

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

Проходной балл: 200

№ а
тлета


Собств. вес

Толчок


Р
ывок


Сумма
Место

1




8
5.5

120.0


150.0


27
0.0


1

2



86.0 115.0 155.0 270.0 2

3



85.0 110.0 147.5 257.5 3

Итого
:


85.0



120.0


1
55
.0

2
7
0
.0

21.

Стипендия
.

Сессия включает в себя экзамены по трём
дисциплинам
: «Алгебра», «Математический анализ» и «Языки и
методы программирования».

Студентам, не сдавшим хотя бы один



19


экзамен, стипендия не выплачивается. С
тудентам, сдавшим все
экзамены не ниже, чем на 
,

начисляется базовая стипендия
из
расчета
25
0 рублей за каждый балл.
Хорошисты (у
спевающие
студенты
, не имеющие троек) дополнительно получают надбавку в
25%.


Отличники (студенты, сдавшие все экзамен
ы

на 5) получают
надбавку 50%.

Разработайте программу, которая будет вычислять
размер стипендии для трёх студентов
и печатать
стипендиальную
ведомость
, получая,

н
а вход
экзаменационные оценки

каждого
студента
. В программе должны быть реализованы, как минимум,
следующие функции



inputDa
ta

для организации ввода исходных данных;



calculate
Scholarship

для определения

размера стипендии
;



calculate
QuantitivePerformance

для
вычисл
ения

количественн
ой

успеваемост
и по определённой дисциплине
(процента оценок по дисциплине, не ниже )
;



calculate
Qua
litative
Performance

для
вычисл
ения

к
ачественной
успеваемост
и по определённой дисциплине
(процент оценок по дисциплине, не ниже )
;



printTable

для печати
отчётной
таблицы.

Отчетная таблица

должна содержать сведения о
б оценках
студентов, размер стипендии
, а
также
две итоговых строки с
количественной и качественной успеваемостью по каждой
дисциплине
:


студента


Алгебра

Мат. ан
.



ЯМП


Стипендия, руб

1




3 3 4


2500.00

2




4 4 5


4062
.
5
0

3




5

5

5



5625
.00

Кол
.
усп., %
:

1
00
.0



100
.0


100
.0

Кач.

усп., %
:


33.3



66.7 100
.0

22.

Абитуриенты
.

Зачисление абитуриента в университет
производится, если суммарное количество баллов
ЕГЭ
по трём
предметам

(математика, физика, русский язык) превышает
проходной балл или балл ЕГЭ по математике или физике равен
100.

Разработайте программу, которая
,

получая на вход
значение
суммарного проходного балла ЕГЭ и
баллы ЕГЭ трёх
абитуриентов, определяет, подлежат ли о
ни зачислению в
университет
. В программе должны быть реализованы, как
минимум, следующие функции



inputData

для организации ввода исходных данных;



calculate
Totals

для определения

суммарного балла ЕГЭ
некоторого
абитуриента
;



isAdmitted
,

определяющую,
зачислен ли абитуриент
;



printTable

для печати
отчётной
таблицы.

Отчетная таблица

должна содержать
для каждого
абитуриента

сведения о

баллах ЕГЭ

по каждому предмету, суммарный балл

и
статус
поступающего
(зачислен
/не зачислен
)
, а также две итоговых
строки
:
со средними баллами по предметам

и с общим
количеством зачисленных
.

Проходной балл: 200


абитур.


Математика

Физика


Рус.яз.


Сумма Статус

1



78


83


4
6


207


зачислен

2



100 77 80 257 зачислен

3



48
5
3

39

140


не зачислен

Средний балл
:


75




7
1



55



20
1

Зачислено
:




2

.

.

.

.

.

.

.
.

.

.





20


2.

Тариф
.

Оператор мобильной связи запустил новый тариф. По
условиям тарифа абонент получает в конце месяца на лицевой счёт
бонус в 150 рублей, если
в течении месяца
абонентом превышены
пороги по двум из трех типов услуг
:
отправке MMS, отправке SMS
общей длительности разговоров. Значения порогов:
10

MMS,
50
SMS
, 100
минут разговоров.

Кроме того, если сумма на лицевом
счете в этот момент превышает
20
0 рублей, она увелич
ивается на
5% перед начислением бонуса. Стоимость услуг: MMS: 2.5
руб/шт.;

SMS
: 0.2 руб/шт; разговор: 0.
15

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

лицевых счетов для трёх абонентов, использующих новый тариф.
На вход
программа должна получать сумму на лицевом счете в
начале месяца, количество MMS, SMS и длительность разговоров
за этот месяц

для каждого из трёх абонентов.

В программе должны
быть реализованы, как минимум, следующие функции



inputData

для организации ввод
а исходных данных;



calculate
Charges

для определения
стоимости потребленных
за месяц услуг
;



bonusMustBeAdded

определ
яющую, может ли быть начислен
бонус
;



calculate
Totals

для определения
сумм
ы

на лицевом счете в
начале следующего месяца
;



printTable

для печати
отчётной
таблицы.

Отчетная таблица

должна содержать
сведения о состоянии
лицевого счета на начало месяца, объеме потребленных услуг,
остатке средств на счете на конец месяца и сумме в начале
следующего
месяца
с уч
ё
том начислений по условиям тар
ифа
, а
также строку со средними значениями
:




Исходно

MMS


SMS Минут Остаток



Остаток
+премии

1

333
.00



2



43



132


299
.6
0

6
14
.
18

2




112.00


0


67



225




64
.
85

214
.
85

3



245.00 13

15


117 191.95 341.95

Сред
: 230.00


5



4
2



158 185.47 390.33

2.

Оценки
.

Успехи студента при изучении одной темы в курсе
программирования оцениваются как среднее арифметическое
оценки за лабораторную работу и оценки за тест

(все оценки


по
пятибалльной шкале).
В свою очередь оценка за л
абораторн
ую
работ
у является средним арифметическим оценок за каждую из
двух задач, входящих в лабораторную работу. Оценка за тест
зависит от процента правильно данных ответов
P
:
оценка «5», если
P



90%
;

«», если 70


P

90
;

«»
, если 5
0


P

7
0
;
«2», в
остальных случаях. Из двух попыток сдать тест в зачет идет
лучшая. Разработайте программу, которая будет вычислять и
печатать оценки за тему для трех студентов.
Пользователь
программы должен указать для каждого студента оценки за две
задачи и процен
ты правильных ответов теста в двух попытках.
В
программе должны быть реализованы, как минимум, следующие
функции



inputData

для организации ввода исходных данных;



average

для
вычисления среднего арифметического
;



calculate
TestMark

для вычисления
оценки за
тест по
проценту правильных ответов в каждой попытке
;



calculate
LabMark

для
вычисления оценки за лабораторную
работу по оценкам за задачи
;



printTable

для печати
отчетной
таблицы.

Отчетная таблица

должна содержать
для каждого студента две
оценки за задачи, п
роценты правильных ответов в двух попытках



21


теста, оценку за лабораторную работу, оценку за тест и оценку за
тему
, а также строку с
о средними показателями
.

Таблица должна
иметь

следующий

вид
:





Зад. 1 Зад. 2 Тест 1 Тест 2 Лаб.раб. Тест Тема

1

5


5

50

80

5

4 5

2


4

4

2
0
6
0

4


3

4

3


0

4

50
4
0

2


3

3

Среднее

3.0 4.3 40 60 3.6 3.3 4

25.

Такси.

Проезд в такси оплачивается по счетчику километража.
Стоимость преодоления одного километра


12 руб. вне
зависимости от количества пассажиров. Дополнительно
оплачивается провоз багаж по цене 50 руб. за одно место.
Разработайте программу, которая будет выч
ислять и печатать
таблицу платежей для трех пассажиров, одновременно севших в
такси, на момент выхода каждого из них, если совместно
преодоленный километраж они оплачивают в равных долях, а за
багаж каждый платит самостоятельно. Пользователь программы
указ
ывает для каждого пассажира количество мест багажа и
показание счетчика километража на момент его выхода.

В
программе должны быть реализованы, как минимум, следующие
функции



inputData

для организации ввода исходных данных;



calculateCharge
s

для определения платы

i
-
го

пассажир
а
;



calculate
Totals

для определения
суммарной платы,
которую должен получить
за услуги
таксист
;



printTable

для печати
отч
ё
тной
таблицы.

Отчетная таблица

должна содержать сведения о
количестве мест
провезенного багажа, пре
одоленном пассажиром расстоянии и его
плате
.

Таблица

должна

иметь

следующий

вид
:

№ пассажира

Багаж
, шт


Расстояние
, км


Плата, руб.

1

1



1.6 56.4

2


0




3.4 17.2

3


2




4.2 126.8

Итого

3 4.2

200.4


Приложенные файлы

  • pdf 23750608
    Размер файла: 718 kB Загрузок: 4

Добавить комментарий