Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа №2 по ООП

.docx
Скачиваний:
27
Добавлен:
22.05.2015
Размер:
445.29 Кб
Скачать

Министерство образования и науки

РФ ФГБОУ ВПО «Кубанский государственный технологический университет»

Институт компьютерных систем и информационной безопасности

Кафедра информатики и вычислительной техники

Отчет По лабораторной работе № 2 По дисциплине ООП

Выполнил студент группы 13-КБ-ИВ: Карнаухов Владислав

Преподаватель: Дьяченко Р.А.

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

Тема работы:

Условные операторы, операторы цикла ЯП C#

Цель работы:

Ознакомиться с синтаксисом уcловных операторов и операторов цикла ЯП C#, выполнить задания.

Контрольные вопросы:

1 . Синтаксис оператора if;

Ответ:

if(условие) оператор1;[ else оператор2;]

2. Синтаксис оператора switch;

Ответ:

switch ( выражение )

{

case константа1 :оператор1 ;. . .break ;

case константа2 : операторX1 ;. . .break ;

[default : операторZ 1 ;. . .break ;]

}

3 . Синтаксис операторов while, do . . . while;

Ответ:

while(условие продолжения цикла) оператор;

do оператор while(условие продолжения цикла);

4. Синтаксис оператора for.

Ответ:

for(инициализация; условие продолжения цикла; итерация) оператор(ы);

Задание №1

Вариант 4:

Ввести 4 целых числа A, B, C, D, одно из которых отлично от трёх других, равных между собой. Определить порядковый номер числа, отличного от остальных.

Словесное описание программы:

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

Текст программы:

Console.WriteLine("Введите 1 число:");

int a = Convert.ToInt32(Console.ReadLine());//Ввод 1 числа

Console.WriteLine("Введите 2 число:");

int b = Convert.ToInt32(Console.ReadLine());//Ввод 2 числа

Console.WriteLine("Введите 3 число:");

int c = Convert.ToInt32(Console.ReadLine());//Ввод 3 числа

Console.WriteLine("Введите 4 число:");

int d = Convert.ToInt32(Console.ReadLine());//Ввод 4 числа

if (a == b && a == c) Console.WriteLine("Порядковый номер числа,отличного от других 4");//Вывод 4 числа

else if (a == b) Console.WriteLine("Порядковый номер числа,отличного от других 3");//Вывод 3 числа

else if (a == c) Console.WriteLine("Порядковый номер числа,отличного от других 2");//Вывод 2 числа

else Console.WriteLine("Порядковый номер числа,отличного от других 1");//Вывод 1 числа

Начало

Ввод A,B,C,D

a==b && a==c

Вывод D

a==b

a==c

Вывод C

Вывод B

Вывод A

Конец

Блок-схема к программе(Задание №1):

Да

Нет

Да

Нет

Нет

Да

Пример работы программы:

Входные данные:

A = 6, B = 6, C = 6, D = 3;

Выходные данные:

Порядковый номер числа, отличного от других 4

Рисунок 1 – Пример работы программы

Задание №2

Вариант 4:

Дано целое число в диапазоне 10-40, определяющее количество учебных

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

учебное задание, например: 18 - восемнадцать учебных заданий,

23 - двадцать три учебных задания, 31 - тридцать одно учебное

задание.

Словесное описание программы:

В начале создаётся массив окончаний для чисел больше 19,затем вводится число, которое впоследствии проверяется, является ли оно больше 19, если да, то данное число делится на 10, чтобы произошла ситуация в которой написано нужные десятки, если же число меньше или равно 19, то происходит ситуация, подходящая к данному числу

Текст программы:

Console.WriteLine("Введите число в диапазоне от 10 до 40:");

string[] s = {"учебных заданий", "одно учебное задание", "два учебных задания", "три учебных задания", "четыре учебных задания", "пять учебных заданий", "шесть учебных заданий", "семь учебных заданий", "восемь учебных заданий", "девять учебных заданий"}; //Массив окончаний

int a = Convert.ToInt32(Console.ReadLine()), b = 0; //Ввод числа

if (a >= 20 && a <= 40) { b = a % 10; a = a / 10; } //Проверка числа больше или меньше 19

switch (a)

{

case 2: Console.WriteLine("Двадцать " + s[b]); break;

case 3: Console.WriteLine("Тридцать " + s[b]); break;

case 4: Console.WriteLine("Сорок " + s[b]); break;

case 10: Console.WriteLine("Десять учебных заданий"); break;

case 11: Console.WriteLine("Одиннадцать учебных заданий"); break;

case 12: Console.WriteLine("Двенадцать учебных заданий"); break;

case 13: Console.WriteLine("Тринадцать учебных заданий"); break;

case 14: Console.WriteLine("Четырнадцать учебных заданий"); break;

case 15: Console.WriteLine("Пятнадцать учебных заданий"); break;

case 16: Console.WriteLine("Шестнадцать учебных заданий"); break;

case 17: Console.WriteLine("Семнадцать учебных заданий"); break;

case 18: Console.WriteLine("Восемнадцать учебных заданий"); break;

case 19: Console.WriteLine("Девятнадцать учебных заданий"); break;

default: Console.WriteLine("Данное число находится вне данного диапазона диапазона"); break; //Ветка, которая выполняется если ни одна из ситуаций не произошла

}

Начало

Ввод числа

Создание массива

a >= 20 && a <= 40

b = a % 10; a = a – (а % 10)

Блок-схема к программе(Задание №2):

Нет

Да

Число

сase2

Корректная фраза

Корректная фраза

сase3

Корректная фраза

Корректная фраза

Корректная фраза

Корректная фраза

Корректная фраза

Корректная фраза

Корректная фраза

Корректная фраза

Корректная фраза

Корректная фраза

Корректная фраза

Фраза, если ни одно из условий не выполнилось

сase4

сase10

сase11

сase12

сase13

сase14

сase15

сase16

сase17

сase18

сase19

default

Конец

Примеры работы программы:

Входные данные:

Число = 32

Выходные данные:

Тридцать два учебных задания

Рисунок 2 – Пример работы программы

Задание №3

Вариант 4:

Ввести целое число N > 0. Последовательность вещественных чисел Аk определяется следующим образом : Аk = 1/K , K = 1,2,……,N. Вывести сумму последовательности.

Словесное описание программы:

С начала в программу вводится число N, далее создаётся цикл от 1 до N, на каждом шаге итерации которого высчитывается факториал числа K, по данной формуле находится Ak, затем при каждой итерации переменная summ суммирует Ak .

Текст программы:

Console.WriteLine("Введите число N:");

int k = Convert.ToInt32(Console.ReadLine()); //Ввод числа N

double a = 1, summ = 0;

ulong b = 1;

for (int i = 1; i <= k; i++)

{

b *= (ulong)i; //Расчёт k-го факториала

a = (double)1 / b;

summ += a; //Суммирование

}

Console.WriteLine("Сумма всех последовательностей = " + summ); //Вывод суммы

Начало

Ввод числа N

i = 1; i <= k; i++

b *= (ulong)i;

a = (double)1 / b;

summ += a;

Вывод суммы последовательности

Конец

Блок-схема к программе(Задание №3):

Примеры работы программы:

Входные данные:

N = 10

Выходные данные:

Сумма всех последовательностей = 1,7182818

Рисунок 3 – Пример работы программы

Задание №4

Вариант 4:

Осуществить ввод последовательности целых чисел и сравнить, что больше,

сумма положительных или произведение отрицательных. Последо-

вательность потенциально не ограничена, окончанием последовательно-

сти служит число 0.

Словесное описание программы:

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

Текст программы:

Console.WriteLine("Введите последовательность целых чисел, для окончания ввода последовательности введите 0:");

int a = 0, creation=1, summ=0;

do

{

a = Convert.ToInt32(Console.ReadLine());//Ввод чисел последовательности

if (a < 0) creation *= a; //Произведение отрицательных

else summ += a; //Суммирование положительных

} while (a != 0);

if (creation > summ) Console.WriteLine("Произведение отрицательных чисел больше суммы положительных и равно " + creation); //Вывод произведения

else if (creation == summ) Console.WriteLine("Произведение отрицательных чисел равно сумме положительных"); //Вывод фразы

else Console.WriteLine("Сумма положительных чисел больше произведения отрицательных и равно " + summ); // Вывод суммы

Начало

a = 0, creation=1, summ=0

Ввод числа

a < 0

creation *= a

summ += a

Блок-схема к программе(Задание №4):

a != 0

Да Нет

Нет

Да

creation > summ

creation == summ

Нет

Нет

Да

Да

creation

фраза

summ

Конец

Примеры работы программы:

Входные данные:

Последовательность целых чисел: 1,-2,3,-4,5,-6,7,-8,9

Выходные данные:

Произведение отрицательных чисел больше суммы положительных и равно

384

Рисунок 4 – Пример работы программы

Задание №5

Вариант 4:

Ввести целое число N > 1, Последовательность чисел Фибоначчи Fk = Fk-2 + Fk-1, F1 = 1 и F2 = 1. Проверить является ли число N числом Фибоначчи. Если является, то вывести True, в противном случае вывести False.

Словесное описание программы:

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

Текст программы:

Console.WriteLine("Введите число:");

long a = Convert.ToInt64(Console.ReadLine()), f = 1, b = 1,c=1; //Ввод числа N

while (f > 0 && f <= a)

{

f = b + c; //Расчёт числа Фибоначчи

c = b;

b = f;

}

if (c == a) Console.WriteLine("True");//Вывод True

else Console.WriteLine("False");//Вывод False

Начало

Блок-схема к программе(Задание №5):

Ввод числа N

f > 0 && f <= a

Нет

c == a

Нет

Да

f = b + c;

c = b;b = f;

False

Да

True

Конец

Примеры работы программы:

Входные данные:

N = 21

Выходные данные:

True

Рисунок 5 – Пример работы программы

Вывод:

В ходе проведения лабораторной работы были приобретены знания синтаксиса 2 условных операторов(if и switch) и 3 операторов цикла(while(предусловие),do….while(постусловие),for(с параметрами)).

Краснодар 2014