Учебная работа. Курсовая работа: Циклические конструкции в языках программирования высокого уровня

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Контрольные рефераты

Учебная работа. Курсовая работа: Циклические конструкции в языках программирования высокого уровня

Курсовая работа

“ЦИКЛИЧЕСКИЕ КОНСТРУКЦИИ В ЯЗЫКАХ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ”

Студент группы

Научный управляющий:

канд. пед. наук.

Тамбов 2007


СОДЕРЖАНИЕ

ВВЕДЕНИЕ

1. ИСТОРИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ

1.1 систематизация языков программирования

1.2 язык C

1.3 Язык C++

1.3 Язык Java

1.4 Язык C#

2. ЦИКЛИЧЕСКИЕ КОНСТРУКЦИИ В ЯЗЫКАХ ВЫСОКОГО УРОВНЯ

2.1 Алгоритмическая структура цикла.

2.2 Циклы в языке С.

2.3 Циклы в языке С++.

2.4 Циклы в языке Java.

2.5 Циклы в языке С#

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

3.1 программка №1 цикл while

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

3.3 программка №3 цикл for.

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

ЗАКЛЮЧЕНИЕ

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

ВВЕДЕНИЕ

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

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

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

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

задачки исследования:

— ознакомиться с чертами неких современных языков программирования высочайшего уровня;

— изучить циклические конструкции в языках высочайшего уровня;

— приготовить литературный обзор источников по теме работы;

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

объект исследования: – языки программирования высочайшего уровня.

Предмет
исследования
– циклические конструкции.

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

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

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

Источниковедческая база
– библиотека ТФ МГУКИ, веб.


1. ИСТОРИЯ
ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ

1.1 систематизация языков программирования

язык программирования — это формализованный язык для описания метода решения задач на компе. Языки программирования можно поделить на:

— языки программирования низкого уровня;

— языки программирования высочайшего уровня.

В группу языков низкого уровня входят машинные языки и языки символического кодировки: (Автокод, Ассемблер). Операторы этого языка – это те же машинные команды, но записанные мнемоническими кодами, а в качестве операндов употребляются не определенные адреса, а символические имена. Все языки низкого уровня нацелены на определенный тип компа, т.е. являются машинно-зависимыми. Машинно-ориентированные языки – это языки, наборы операторов и изобразительные средства которых значительно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.).

К языкам программирования высочайшего уровня относятся Фортран, Алгол, Кобол, Бейсик, Си, Пролог, С++, С#, Java и т.д. Эти языки машинно-независимы, т.к. они нацелены не на систему установок той либо другой ЭВМ , а на систему операндов, соответствующих для записи определенного класса алгоритмов. Но программки, написанные на языках высочайшего уровня, занимают больше памяти и медлительнее производятся, чем программки на машинных языках. Это и есть главный их недочет.

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

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

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

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

Все сделанные до реального времени языки были связанны вместе, при этом на любой новейший язык в той либо другой форме влияют его предшественники. В процессе такового «перекрестного опыления» средства из 1-го языка приспосабливаются остальным, успешная новость встраивается в имеющийся контекст, а отжившая система отбрасывается за ненадобностью. Приблизительно так и происходит эволюция компьютерных языков и развитие искусства программирования. Более известными и пользующимися популярностью языками программирования на нынешний денек являются: С, С++, Java, С# [1].

1.2 Язык
C

Язык С был разработан сначала 1970-х годов Денисом Ритчи (Dennis Ritchie), работавшим в то время в компании Bell Laboratories. Хотя сначало язык С создавался для разработки операционных систем и компиляторов, он стремительно получил популярность в среде программистов и заполучил доп достоинства благодаря его стандартизации, выполненной Южноамериканским институтом государственных эталонов (ANSI — American National Standards Institute).

язык С поначалу рассматривался просто как некий шаг вперед по сопоставлению с машинным языком. По данной нам причине его синтаксис наиболее краток и выразителен, чем синтаксис остальных языков высочайшего уровня, использующих полные слова британского языка для выражения тех языковых конструкций, которые в языке С представляются при помощи особых знаков. Эта краткость является одной из обстоятельств чрезвычайной популярности языка С, так как дозволяет программерам отлично выражать сложные методы. Нередко, короткое программка обработки перечня */#include <stdio.h>

#include <string.h>

main()

{

char names[10][9], pivot[9];

int i, j;

/* Ввод имен с клавиатуры */

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

scanf(«%s», names[i]);

/* Сортировка перечня имен */

for(i = 1; i < 10; ++i)

{ strcpy(pivot,names[i]);

j = i — 1;

while((j>=0) && (strcmp(pivot, names[j]) < 0)

{ strcpy(names[j+1], names[j]); —j;}

strcpy(names[j+1],pivot);}

/* Печать отсортированного перечня */

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

printf(«%sn», names[i]);}

1.3 язык C++

К концу 1970-х размер проектов стал приближаться к критичному, при превышении которого методика структурного программирования и язык С «опускали руки«. Потому стали появляться новейшие подходы к программированию, дозволяющие решить эту делему. один из их получил заглавие (ООП). Используя ООП, программер мог управляться с программками еще большего размера, чем до этого. Но вся неудача состояла в том, что С, самый пользующийся популярностью на то время язык, не поддерживал ООП. Желание работать с объектно-ориентированной версией языка С в конце концов и привело к созданию C++. язык C++ был разработан Бьярни Страуструпом (Bjarne Stroustrup) в компании Bell Laboratories (Муррей Хил, Нью-Джерси), и годом сотворения считается 1979-й. Сначало создатель новейшего языка именовал его «С с классами», но в 1983 году это имя было изменено на C++. C++ стопроцентно включает элементы языка С. Таковым образом, С можно считать фундаментом, на котором построен C++. Большая часть дополнений, которые Страуструп занес в С, были предусмотрены для поддержки объектно-ориентированного программирования. На самом деле, C++ — это объектно-ориентированная версия языка С. Возводя «здание» C++ на фундаменте С, Страуструп обеспечил плавный переход почти всех программистов на «рельсы» ООП. Заместо необходимости учить совсем новейший язык, С-программисту довольно было освоить только новейшие средства, дозволяющие применять достоинства объектно-ориентированной методики.

В протяжении 1980-х годов C++ активно развивался и к началу 1990-х уже был готов для широкого использования. Рост его популярности носил взрывоподобный нрав, и к концу этого десятилетия он стал самым обширно применяемым языком программирования. В наши деньки язык C++ как и раньше имеет бесспорное приемущество при разработке высокопроизводительных программ системного уровня. Принципиально осознавать, что создание C++ не было попыткой изобрести совсем новейший язык программирования. Это было собственного рода усовершенствование и без того весьма удачного языка. Таковой подход к разработке языков (взять за базу имеющийся язык и поднять его на новейшую ступень развития) отдал начало тенденции, которая продолжает жить и сейчас [4, 6].

Пример программки на языке С++:

// программка обработки перечня

#include <iostreain.h>

#include <string.h>

const int ListLength = 10;

// Все объекты класса list содержат перечень имен и три открытых

// способа, которые именуются getnames, sortlist и printnames.

class list

{ private:

char names[ListLength][9];

public:

void getnames()

{ int i;

for(i = 0; i< ListLength; *+i)

cin » names[i]; }

void sortlist()

{ int i,j;

char pivot[9];

for(i = 1; i < ListLength; ++i)

{ strcpy(pivot, names[i]);

j = i — 1;

while((j >= 0) && (stremp(pivot, names[j]) < 0))

{ strcpy(names[j+1], names[j]); —j;}

strcpy(names[j+1],pivot); } }

void printnames()

{ int i;

cout « endl;

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

cout « names[i] « endl; } }

// Создание объекта с именованием namelist и воззвание к нему с // требованием ввести несколько имен, отсортировать их, а // потом вывести отсортированный перечень на экран.void main()

{ list namelist;

namelist.getnames();

namelist.sortlist();

namelist.printnames();

1.3 язык Java

Последующей ступенью на лестнице прогресса языков программирования стал язык Java, который сначало именовался Oak (в переводе с англ. «дуб»).

Java — это объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems сначала 90-х годов. Его создатели много взяли в долг из языков С и C++. Будучи новеньким языком, Java еще не подвергался стандартизации. Вправду, язык Java все еще находится на стадии эволюции. Но почти все экзальтированно относятся к этому языку, так как он обещает стать эталоном для тех программ, которые известны как «аплеты Java» и которые можно передавать через Internet в виде выполняемых модулей и запускать на хоть какой клиентской машине. Благодаря таковой возможности статичные по собственной природе гипертекстовые документы можно поменять оживленными программками, с которыми юзер сумеет вести взаимодействие конкретно [7].

Пример программки на языке Java:

// Программка обработки перечня

import java.io.*

// Все объекты класса list содержат перечень имен и три открытых

// способа, которые именуются getnames, sortlist и printnames.

class list

{ final int ListLength = 10;

private String[] names;

public list()

{ names = new String[ListLength]}

public void getnames{}

{ int i;

Datalnput data = new DatalnputStream(System.in);

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

{ try( names[i] = data.readLine();

catch(IOException e){};}

public void sortnames()

{ int i,j;String pivot;for(i = 1; i < ListLength; i++)

{ pivot = names[i]);j = i — 1;

while((j >= 0) && (pivot.compareTo(names[j]) < 0))

{ names[j+1]=names[j];j—;}

names[j+1] = pivot;}}

public void printnames()

{ int i;for(d = 0; i < ListLength; i++)

System.out.println(names[i]);}}

// Создание объекта с именованием namelist и воззвание к нему с// требованием ввести несколько имен, отсортировать их, а// потом вывести отсортированный перечень на экран.

class sort{ public static void main (String args[])

{ list namelist = new list();

namelist.getnames();

namelist.sortnames();

namelist.printnames(); }}

1.4 язык C#

Создатели Java удачно решили почти все задачи, связанные с переносимостью в среде Internet, но далековато не все. одна из их — межъязыковая возможность взаимодействия (cross-language interoperability) программных и аппаратных изделий различных поставщиков, либо многоязыковое программирование (mixed-language programming). В случае решения данной нам задачи программки, написанные на различных языках, могли бы удачно работать одна с иной. Такое взаимодействие нужно для сотворения огромных систем с распределенным программным обеспечением (ПО ), также для программирования компонент ПО , так как самым ценным является компонент, который можно применять в широком спектре компьютерных языков и операционных сред. Не считая того, в Java не достигнута полная интеграция с платформой Windows. Хотя Java-программы могут производиться в среде Windows (при условии установки виртуальной машинки Java), Java и Windows не являются крепко связанными средами. А так как Windows — это более обширно применяемая операционная система в мире, то отсутствие прямой поддержки Windows — суровый недочет Java [13].

Чтоб удовлетворить эти потребности, Microsoft разработала язык С#. С# был сотворен в конце 1990-х годов и стал частью общей .NET-стратегии Microsoft. В первый раз он узрел свет в качестве б-версии посреди 2000 года. Основным архитектором С# был Андерс Хейлсберг (Anders Hejlsberg) — один из ведущих профессионалов в области языков программирования, получивший признание во всем мире. Довольно сказать, что в 1980-х он был создателем очень удачного продукта Turbo Pascal, роскошная реализация которого установила эталон для всех будущих компиляторов. С# конкретно связан с С, C++ и Java. И это не случаем. Эти три языка — самые пользующиеся популярностью и самые возлюбленные языки программирования в мире. Наиболее того, практически все проф программеры сейчас знают С и C++, и большая часть понимает Java. Так как С# построен на крепком, понятном фундаменте, то переход от этих «базовых» языков к «надстройке» происходит без особенных усилий со стороны программистов. Потому что Андерс Хейлсберг не собирался изобретать свое «колесо», он сосредоточился на внедрении усовершенствований и новшеств.

«Дедушкой» С# является язык С. От С язык С# унаследовал синтаксис, почти все главные слова и операторы. Не считая того, С# построен на усовершенствованной объектной модели, определенной в C++. Если вы понимаете С либо C++, то с С# вы сходу станете друзьями. С# и Java соединены меж собой несколько труднее. Как упоминалось выше, Java также является потомком С и C++. У него тоже общий с ними синтаксис и схожая объектная модель. Подобно Java C# предназначен для сотворения переносимого кода. Но С# — не потомок Java. Быстрее С# и Java можно считать двоюродными братьями, имеющими общих протцов, но получившими от родителей различные наборы «генов». Связь языков можно изобразить в виде схемы, которая представлена на рисунке 1[12].

Набросок 1 — Схема связи языков программирования

Общую связь языков можно узреть в коде C# программки:

// Определение меньшего множителя,

// состоящего из одной числа.

using System;

class Ladder {

public static void Main() {

int num;

for(num = 2; num < 12; num++) {

if((num % 2) == 0)

Console.WriteLine(«Меньший множитель числа » +

num + » равен 2.»);

else if((num % 3) == 0)

Console.WriteLine(«Меньший множитель числа » +

num + » равен 3.»);

else if((num % 5) == 0)

Console.WriteLine(«Меньший множитель числа » +

num + » равен 5.»);

else if((num % 7) == 0)

Console.WriteLine(«Меньший множитель числа » +

num + » равен 7.»);

else

Console.WriteLine(num +

» не делится на 2, 3, 5 либо 7.»); }}


2. ЦИКЛИЧЕСКИЕ КОНСТРУКЦИИ В ЯЗЫКАХ ВЫСОКОГО
УРОВНЯ

2.1 Алгоритмическая структура цикла

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

— циклы со счетчиком, в каких тело цикла производится определенное количество раз;

— циклы с условием, в каких тело цикла производится до того времени, пока производится условие.

Все они состоят из нескольких шагов. Это:

— Подготовка цикла, в которую входят исходные присвоения;

тело цикла — команды повторения цикла;

— Условие — неотклонимая часть цикла “Пока”.

Повторяющейся конструкцией со счетчиком является цикл “For либо Для”, его употребляют когда заблаговременно понятно, какое число повторений тела цикла нужно выполнить. Цикл “For” можно представить в виде блока схем, таковая схема изображена на рисунке 2.

сейчас разглядим цикл “While либо Пока”. Цикл “While” является повторяющейся конструкцией с условием, т.е. это таковой цикл, где тело цикла производится до того времени, пока производятся некие условия. Его простая блок схема изображена на рисунке 3.



Набросок 2 — Схема цикла For

Набросок 3 — Схема цикла While

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

Более нередко в методах и программках используются два вида циклов. Это циклы “ While либо Пока ” и “ For либо Для ”.

Циклы весьма нередко употребляют в прикладных программках и методах. Для того чтоб осознать принципы циклов, разглядим их в языках программирования высочайшего уровня [9].

2.2 Циклы в языке С

В языке C используются такие циклические конструкции: while,for.

Цикл while
это цикл, в каком тело повторяется пару раз до того времени, пока поистине условие. Чтоб цикл окончился, оператор-тело цикла должен поменять какую-то переменную, от которой зависит истинность условия повторений.

Его система смотрится таковым образом:

while(условие){ оператор;}

…продолжение…

либо

while(условие){

операторы; … }

…продолжение…

Пример цикла:

int x;

x = 10;

While (x > 0) { Printf («x=%dn», x);

x = x — 1;} printf(«Конец.n»);

printf(«x сделалось равно %d.n», x);/* печатает 0 */

Цикл for («для всякого») Этот цикл является просто другой записью 1-го из вариантов цикла while. Он служит обычно для выполнения определенного деяния несколько раз, не «пока поистине условие», а «выполнить N-раз». У такового цикла есть «переменная цикла» либо «счетчик повторений».

int i;

i = a; /* исходная инициализация */

while(i < b){ тело_цикла;

i += c; /* повышение счетчика */}

…продолжение…

переписывается в виде

int i;for(i=a; i < b; i += c) тело_цикла;

Тело_цикла будет выполнено для значений i

a

a+c

a+c+c

пока i < b

В простом случае:

for(i=1; i <= N; i++)

Printf («i=%dn», i)

i значит «номер повторения».

Таковой цикл служит для повторения похожих действий несколько раз с различным значением параметра. Оператор break («вывалиться из цикла») Оператор break принуждает оборвать выполнение тела цикла и сходу перейти к продолжению программ

While (условие1) {

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

break; операторы2;}

…продолжение…и

for(i=0; условие1; i++){ операторы1;

if(условие2) break;операторы2; }

…продолжение…

Этот оператор дозволяет организовывать доп точки выхода из цикла (при доп критериях).

Пример:

for (i=0; i < 20; i++){

Printf («i=%dn», i);

if (i == 7){ Printf («break loop! n»);

break; /* вывалиться из цикла */ }

printf(«moren»);}

Printf («finished, i=%dn», i); /* печатает 7 */

А именно, с его помощью можно организовывать нескончаемый цикл: for (;;){ /* заголовок нескончаемого цикла */

операторы1;

if (условие2)

break;

операторы2; } …продолжение…

тут в самом заголовке цикла не проверяется никаких критерий, таковой цикл длится нескончаемо. Условие продолжения считается постоянно настоящим. Единственный метод выйти из него — это создать break (при каком-то условии) в теле цикла, что и написано [2,3].

Нескончаемый цикл можно также организовать с помощью:

while(1){

}

2.3 Циклы в языке С++

Представим, нам необходимо вычислить сумму всех целых чисел от 0 до 100. Для этого воспользуемся оператором цикла for
:


int sum = 0;int i;for (i = 1; i <= 100; i = i + 1)// заголовок циклаsum = sum + i; // тело цикла

Оператор цикла состоит из заголовка цикла и тела цикла. Тело цикла – это оператор, который будет повторно производиться (в данном случае – повышение значения переменной sum на величину переменной i). Заголовок – это ключевое слово for, опосля которого в круглых скобках записаны три выражения, разбитые точкой с запятой. 1-ое выражение рассчитывается один раз до начала выполнения цикла. 2-ое – это условие цикла. тело цикла будет повторяться до того времени, пока условие цикла поистине. Третье выражение рассчитывается опосля всякого повторения тела цикла.

Оператор for реализует базовый принцип вычислений в программировании – итерацию. тело цикла повторяется для различных, в данном случае поочередных, значений переменной i. Повторение время от времени именуется итерацией. Мы вроде бы проходим по последовательности значений переменной i, выполняя с текущим значением одно и то же действие, тем равномерно вычисляя необходимое
int sum = 0;int i = 1;for (; i <= 100; ) {sum = sum + i;i = i + 1; }Заметим, что заместо 1-го оператора цикла мы записали несколько операторов, заключенных в фигурные скобки – блок. иной вариант:int sum = 0;int i = 1;for (; 😉 {if (i > 100)break; sum = sum + i;i = i + 1; }

В крайнем примере мы снова встречаем оператор break. Оператор break завершает выполнение цикла. Еще одним вспомогательным оператором при выполнении циклов служит оператор продолжения continue. Оператор
continue принуждает пропустить остаток тела цикла и перейти к последующей итерации (повторению). к примеру, если мы желаем отыскать сумму всех целых чисел от 0 до 100, которые не делятся на 7, можно записать это так:


int sum = 0;for (int i = 1; i <= 100; i = i+1) {if ( i % 7 == 0)continue; sum = sum + i; }

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

иной формой оператора цикла является оператор while
. Его форма последующая:


while (условие) операторУсловие – как и в условном операторе if – это выражение, которое воспринимает логическое правда). Условие рассчитывается поновой перед каждой итерацией. Подсчитать, сколько десятичных цифр необходимо для записи целого положительного числа N, можно при помощи последующего фрагмента:int digits =0;while (N > 0) {digits = digits + 1;N = N / 10;}

Третьей формой оператора цикла является цикл do while
. Он имеет форму:


do { операторы } while ( условие);

Отличие от предшествующей формы цикла while состоит в том, что условие проверяется опосля выполнения тела цикла. Представим, требуется прочесть знаки с терминала до того времени, пока не будет введен знак «звездочка».


char ch;do {ch = getch(); // функция getch возвращает// знак, введёный с// клавиатуры} while (ch != ‘*’);

В операторах while и do также можно применять операторы break и continue. Как просто увидеть, операторы цикла взаимозаменяемы. Оператор while соответствует оператору for:


for ( ; условие ; ) оператор

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


char ch;ch = getch();while (chactiveX{ch = getch();}Различные формы необходимы для удобства и наглядности записи [4, 5, 6].

2.4 Циклы в языке Java

В языке программирования java, как и в остальных языках программирования, употребляются такие циклические конструкции как while, for, do while.

Главный оператор цикла в языке Java— оператор while
— смотрится так:

while (лог.Вьгр) оператор

Сначала рассчитывается логическое выражение; если его

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

int i = 0;

double s = 0.0;

while ((s += 1.0 / ++i) < 10);

вычисляет количество i сложений, которые нужно создать, чтоб гармоническая сумма s достигнула значения 10. Таковой стиль характерен для языка С. Можно организовать и нескончаемый цикл:

while (true) оператор

естественно, из такового цикла следует предугадать некий выход, к примеру, оператором break, как в листинге 1.5. В неприятном случае программка зациклится, и для вас придется прекращать ее выполнение.

Если в цикл нужно включить несколько операторов, то следует образовать блок операторов {}.

иной оператор цикла — оператор do-while
— имеет вид do оператор while (лог.Выр)

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

В цикле do-while проверяется условие продолжения, а не окончания цикла. Большое отличие меж этими 2-мя операторами цикла лишь в том, что в цикле do-while оператор непременно выполнится хотя бы один раз. К примеру, пусть задана какая-то функция f(x), имеющая на отрезке, [о; b] ровно один корень. Ниже представлена эта программка:

class Bisection{

static double f(double x){

return x*x*x — 3*x*x +3; }

// Либо что-то другое public static void main(String!] args){double a = 0.0, b = 1,5, с, y, eps = le-8;

do{с = 0.5 *(a + b); у = f(с);

if (Math.абс(y) < eps) break;// Корень найден. Выходим из цикла// Если на концах отрезка [а; с] // функция имеет различные знаки: if (f (а) * у < 0.0) b = с;

//означает, корень тут. Переносим точку b в точку с

//В неприятном случае: else а * с;

// Переносим точку а в точку с// Продолжаем, пока отрезок [а; Ь] не станет мал } while (Math, абс (b-a) >= eps); System.out.println(«x = » +c+ «, f(» +c+ «) = » +y) }}

И еще один оператор цикла — оператор for
— смотрится так:

for ( перечень.Выр ; лог.Выр; перечень.Выр2) оператор

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

Потом рассчитывается логическое выражение лог.выр. Если оно поистине, true, то действует оператор, позже рассчитываются слева вправо выражения из перечня выражений списокВыр2. Дальше опять проверяется лог.выр. Если оно поистине, то производится оператор и списокВыр2 и т. д. Как лог.выр станет равным false, выполнение цикла завершается. Короче говоря, производится последовательность операторов.

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

for (;;) оператор

В этом случае в теле цикла следует предугадать какой-либо выход.

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

int s=0;

for (int k = 1; k <= N; k++) s += k * k;

В операторах цикла употребляется оператор continue. Он имеет две формы. 1-ая форма состоит лишь из слова continue и производит незамедлительный переход к последующей итерации цикла. В следующем фрагменте кода оператор continue дозволяет обойти деление на нуль:

for (int i = 0; i < N; i++){

if (i ‘== j) continue;

s += 1.0 / (i — j); }

2-ая форма содержит метку:

continue метка

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

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

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

Ml: { // Наружный блок

М2: { // Вложенный блок — 2-ой уровень

М3: { // 3-ий уровень вложенности… if (что-то случилось) break M2; } // Если true, то тут ничего не производится // Тут тоже ничего не производится}

// Сюда передается управление}

Сначала сбивает с толку то событие, что метка ставится перед блоком либо оператором, а управление передается за этот блок либо оператор. Потому мне кажется что не стоит увлекаться оператором break с меткой [8].

2.5 Циклы в языке С#

Управляемые итерации, либо циклы, в С# делают операторы for, while, do/while и foreach
В любом случае исполняется обычный либо составной оператор, пока ,
производящий итерацию перечня объектов. Цикл , for
предоставляет механизм для прохода по циклу, при котором инициализируется некая локальная переменная и производится оператор в цикле до того времени, пока данное условие поистине, при этом перед переходом к последующей итерации делается какой-либо обычный шаг. Синтаксис цикла:

for(инициализатор; условие; итератор;) оператор {ы}

Где инициализатор-выражение, вычисляемое до начала выполнения цикла (обычно тут инициализируется локальная переменная, применяемая в качестве счетчика цикла), условие-выражение, которое рассчитывается перед выполнением каждой итерации цикла (к примеру, проверка того, что счетчик цикла меньше определенного значения), итератор-это выражение, которое будет выполнятся опосля каждой итерации цикла (к примеру, повышение счетчика цикла).Цикл, for известен также как цикл с предусловием, так как условие цикла рассчитывается до выполнения операторов цикла, а в том случае, если условие сходу оказывается равным false, операторы цикла совершенно не будут исполнены. Перед каждой итерацией цикла условие рассчитывается вновь. Цикл заканчивается, как итог вычисления условия становится false. Цикл for потрясающе подступает для повтора оператора либо нескольких операторов заблаговременно определенное число раз. Последующий пример указывает обычное внедрение цикла for:

for ( int I = 0; I < 100; i ++)

{ //Цикл будет выполнен 100 раз}

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

// Этот цикл проходит по строчкам

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

{// Это цикл проходит по столбцам

for ( int j = 0; j < 100; j ++){

a[ i , j] = 0;}}

Разглядим цикл while
,
его общая форма имеет таковой вид:

whi1е (
;

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

Цикл while работает последующим образом. Проверяется больше нуля. Когда num станет равным нулю, цикл закончится, а переменная mag будет содержать порядок начального числа. Подобно циклу for, условное выражение проверяется при входе в цикл while, a это означает, что тело цикла может не выполниться никогда. Это свойство цикла (иллюстрируемое последующей программкой) избавляет необходимость отдельного тестирования до начала цикла:

// Вычисление целых степеней числа 2.

using System;

class Power {

public static void Main() {

int e;

int result;

for(int i=0; i < 10;

result = 1;

e = i;

while(e > 0) {

result *= 2;

e—;

Console.WriteLine(«2 в степени » + i +

» равно » + result);

Третьим циклом в С# является цикл do-while
. В отличие от циклов for и while,в каких условие проверяется при входе, цикл do-while инспектирует условие при выходе из цикла. Это означает, что цикл do-while постоянно производится хотя бы один раз. Его общий формат имеет таковой вид:

do {
} while
;

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

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(«Введите 1-ое число»); double n1 = Convert.ToDouble(Console.ReadLine());

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

Console.WriteLine(«Введите 2-ое число»); 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»

Представим, нужно получить сумму 2-ух матриц. В программировании эту задачку проще всего воплотить, воспользовавшись повторяющейся конструкцией 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 — Итог работы программки №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с.: ил.

]]>