на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Циклические конструкции в языках программирования высокого уровня
p align="left">using System;

class DoWhileDemo {

public static void Main() {

int num;

int nextdigit;

num = 198;

Console.WriteLine("Число: " + num);

Console.Write("Число с обратным порядком цифр: " ) ;

do {nextdigit = num % 10;

Console.Write(nextdigit);

num = num / 10;

} while(num > 0) ;Console.WriteLine();}}}

И еще одна циклическая конструкция foreach. Цикл foreach предназначен для опроса элементов коллекции. Коллекция -- это группа объектов. В С# определено несколько типов коллекций, среди которых можно выделить массив. Формат записи цикла foreach имеет такой вид:

foreach (тип имя__переменной in коллекция) инструкция;

Здесь элементы тип и имя_переменной задают тип и имя итерационной переменной, которая при функционировании цикла fоreach будет получать значения элементов из коллекции. Элемент коллекция служит для указания опрашиваемой коллекции (в данном случае в качестве коллекции мы рассматриваем массив). Таким образом, элемент тип должен совпадать (или быть совместимым) с базовым типом массива. Здесь важно запомнить, что итерационную переменную применительно к массиву можно использовать только для чтения. Следовательно, невозможно изменить содержимое массива, присвоив итерационной переменной новое значение.

Рассмотрим простой пример использования цикла foreach. Приведенная ниже программа создает массив для хранения целых чисел и присваивает его элементам начальные значения. Затем она отображает элементы массива, попутно вычисляя их сумму [10, 12, 13, 14].

// Использование цикла foreach.

using System;

class ForeachDemo {

public static void Main() {

int sum = 0;int[] nums = new int[10];

// Присваиваем элементам массива nums значения,

for(int i = 0; i < 10; i++){ nums[i] - i;

// Используем цикл foreach для отображения значений

// элементов массива и их суммирования,

foreach(int x in nums) {

Console.WriteLine("Значение элемента равно: " + х);

sum += х;}

Console.WriteLine("Сумма равна: " + sum);}}}

3. ПРИМЕР ПРОГРАММ ЦИКЛИЧЕСКИХ КОНСТРУКЦИЙ НА ЯЗЫКЕ С#

3.1 Программа №1 «цикл while»

Предположим необходимо найти арендную плату за помещение за 10 лет. Известно, что арендная плата в месяц составляет 1200р. и что она увеличивается на 5 % в год. Для написания программы решения этой задачи воспользуемся циклом while:

using System;

//указывает что используется пространство имен system

using System.Collections.Generic;

using System.Text;{

namespace ConsoleApplication5

{

class Program

{

// объевление функции main

static void Main(string[] args)

{

// программа расчета арендной платы

// год начала и конца арендной платы

int i = 2007, j = 2017;

// арендная плата в месяц и проценты вгод

decimal Renta = 1200, Procent = 5;

// заголовок столбцов

Console.WriteLine("Год Аренда");

Console.WriteLine("---- -----");

while (i <= j)

{ // строка вывода арендной платы

Console.WriteLine("{0,-8}{1,10:C2}", i, Renta);

// расчет арендной платы за год

Renta *= (1 + Procent / 100);

Renta = Decimal.Round(Renta, 2);

i++;

} Console.ReadLine(). }}}

В результате чего получена сумма арендной платы за 10 лет. Результат работы этой программы изображен на рисунке 3

Рисунок 3 - Результат программы №1 «цикл while»

3.2 Программа №2 «цикл do-while»

Цикл do-while полезен в программах, предполагающих ввод данных. Ниже представлен текст программы, которая выполняет несколько простых математических действий, в конце чего запрашивает у пользователя о его желании выполнить другое вычисление.

using System;

using System.Collections.Generic;

using System.Text;

namespace ConsoleApplication6

{

class Program

{ static void Main(string[] args)

{string strAnswer;

double a;

do

{ //запрос на ввод первого числа числа

Console.WriteLine("Введите первое число"); double n1 = Convert.ToDouble(Console.ReadLine());

//запрос на ввод второрго числа

Console.WriteLine("Введите второе число"); double n2 = Convert.ToDouble(Console.ReadLine());

//запрос на выбор действия

Console.WriteLine("Выбирите действие +: /: *: -:");

string s = Convert.ToString(Console.ReadLine());

//выполнение условия

//если введенное значение соответствует знаку + то выполняется сложение

if (s == "+")

{

a = n1 + n2;

Console.WriteLine("Сумма чисел равна :"+a);

}

//если введенное значение соответствует знаку * то выполняется умножение

else if (s == "*")

{ a = n1 * n2;

Console.WriteLine("Произведение чисел равна :"+ a);

} //если введенное значение соответствует знаку - то выполняется отнимание

if (s == "-")

{

a = n1 - n2;

Console.WriteLine("Разность чисел равна :"+ a);

}

//если введенное значение соответствует знаку / то выполняется деление

else if (s == "/")

{ a = n1 / n2;

Console.WriteLine("Частное чисел равна :"+ a);

} // запрос на новое вычисление

Console.Write("Не желает ли пользователь выполнить другое вычисление (y/n)");

strAnswer = Console.ReadLine().Trim();

} //происходит сравнение strAnswer символом y

while (strAnswer.Length > 0 && strAnswer.ToLower()[0] == 'y');

Console.ReadLine();

}

}

}

Результат программыы можно увидеть на рисунке 4

Рисунок 4 - Результат программы №2 «цикл do-while»

3.3 Программа №3 «цикл for»

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

using System;

using System.Collections.Generic;

using System.Text;

namespace ConsoleApplication7

{

class Program

{

static void Main(string[] args)

{

int i, j, m, n;

//запрос на ввод количества строк

Console.WriteLine("введите n");

n = Convert.ToInt32(Console.ReadLine());

//запрос на количество столбцов

Console.WriteLine("введите m");

m = Convert.ToInt32(Console.ReadLine());

//инициализация массивов

int[,] a = new int[n, m];

int[,] b = new int[n, m];

int[,] c = new int[n, m];

int[] d = new int[n];

//заполнение массивов случайными числами

Random r = new Random();

for (i = 0; i < n; i++)

{

for (j = 0; j < m; j++)

{

a[i, j] = r.Next(0, 10);

b[i, j] = r.Next(0, 10);

}

}

Console.WriteLine("----------------матрица a ------------");

for (i = 0; i < n; i++)

{

for (j = 0; j < m; j++)

");

Console.WriteLine();

}

Console.WriteLine("---------------матрица b -------------");

for (i = 0; i < n; i++)

{

for (j = 0; j < m; j++)

");

Console.WriteLine();

}

Console.WriteLine("------------c=(сумма а и b)-----------");

for (i = 0; i < n; i++)

{

for (j = 0; j < m; j++)

");

Console.WriteLine();}

Console.ReadLine();}}}

Результат этой программы изображен на рисунке 5

Рисунок 5 - Результат выполнения программы №3 «цикл for»

3.4 Программа №4 «цикл foreach»

Предположим необходимо организовать поиск числа в массиве. Для этого можно использовать циклическую конструкцию foreach. Ниже приведен текст программы с таким циклом:

using System;

using System.Collections.Generic;

using System.Text;

namespace ConsoleApplication10

{class Search

{public static void Main(string[] args)

{

int[] n=new int [10];

int val;

bool found = false;

//присваиваем элементам масива n значение

for (int i = 0; i < 10; i++)

n[i] = i;

Console.WriteLine("Введите значение");

val = Convert.ToInt32(Console.ReadLine());

//используем цикл foreach для поиска в массиве n

//заданного значения

foreach (int x in n)

{

if (x == val)

{

found = true;

break;}}

if (found)

Console.WriteLine("Значение найдено!");

else

Console.WriteLine("Значение ненайденно!");

Console.ReadLine();}}}

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

Рисунок 6 - Результат работы программы №4 «цикл foreach»

ЗАКЛЮЧЕНИЕ

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

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

Программа немыслима без циклических конструкций, так как все программы основаны на повторении.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Лахатин, А.С. Языки программирования. Учеб. пособие / А.С. Лахатин, Л.Ю. Искакова. - Екатеринбург, 1998. - 548с.: ил.

2. Богатырев, А. Язык программирования С [Электронный ресурс] / А. Богатырев.- электр. дан. - Режим доступа: http://www.refby.com. - Загл. с экрана.

3. Уэйт, М. Язык С. Руководство для начинающих. / М. Уэйт, С. Прага, Д. Мартин. - М.: Мир, 1995. - 521с.: ил.

4. Фридман, А.Л. Язык программирования С++ / А.Л.Фридман. - М.: Бином, 2006. - 523с.: ил.

5. Патрикеев, Ю.Н. Объектно-ориентированное программирование на Broland C++ [Электронный ресурс] / Ю.Н.Патрикеев. - Электрон. Дан. - Режим доступа: http://www.intuit.ru/department/pl/cpp/lit.html. - загл. с экрана.

6. Тарасов, И. Thinking in C++/ И. Тарасов.- М.: 2004.- 496с.: ил.

7. Гагин, А. История JAVA / А.Гагин.- М,1998.-257с.: ил.

8. Таранов, А. Java как центр архипелага [Электронный ресурс] / А. Таранов, В. Цишевский. - Электрон. дан.- Режим доступа: http:// www. fortunecity.com/skyscraper/mmx/490/index.html. - Загл. с экрана.

9. Коропов, С. Алгоритм [Электронный ресурс] / С. Коропов. - Электрон. дан. - Режим доступа: ftp://labrea.stanford.edu/pub/cweb/ . - Загл. с экрана.

10. Робинсон, С. C# для профессионалов: T.1. / С.Робинсон, О. Корнес, Д.Глин, Б. Харвей и др.; пер. с англ. С. Кортыгин и О. Труфанов. - М. ЛОРИ. - М.: 2005. - 999с.

11. Петцольд, Ч. Программирование в тональности C#. - М.: изд-во торговый дом «Русская редакция», 2004. - 512с.: ил.

12. Шилдт, Г. Полный справочник по C#. / Г. Шилдт; пер. с англ. Н.М. Ручко. - М.: Изд. дом Вильямс, 2004. - 752с.: ил.

13. Бишоп, Дж. C# в кратком изложении / Дж.Бишоп, Н. Хорспул; пер.с.англ. - М.: Бином, 2005. - 472с.: ил.

14. Троелсен, Э. C# и платформа. NET. Библиотека программиста / Э. Троелсен. - Питер.: 2004. - 796с.: ил.

Страницы: 1, 2, 3, 4



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.