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

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 Алгоритмическая структура цикла

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

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

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

Они все состоят из нескольких этапов. Это:

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

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

- Условие - обязательная часть цикла “Пока”.

Циклической конструкцией со счетчиком является цикл “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=%d\n", x);

x = x - 1;} printf("Конец.\n");

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

Цикл for ("для каждого") Этот цикл является просто иной записью одного из вариантов цикла 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=%d\n", 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=%d\n", i);

if (i == 7){ Printf ("break loop! \n");

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

printf("more\n");}

Printf ("finished, i=%d\n", 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, после которого в круглых скобках записаны три выражения, разделенные точкой с запятой. Первое выражение вычисляется один раз до начала выполнения цикла. Второе - это условие цикла. Тело цикла будет повторяться до тех пор, пока условие цикла истинно. Третье выражение вычисляется после каждого повторения тела цикла.

Оператор for реализует фундаментальный принцип вычислений в программировании - итерацию. Тело цикла повторяется для разных, в данном случае последовательных, значений переменной i. Повторение иногда называется итерацией. Мы как бы проходим по последовательности значений переменной i, выполняя с текущим значением одно и то же действие, тем самым постепенно вычисляя нужное значение. С каждой итерацией мы подходим к нему все ближе и ближе. С другим принципом вычислений в программировании - рекурсией - мы познакомимся в разделе, описывающем функции. Любое из трех выражений в заголовке цикла может быть опущено (в том числе и все три). То же самое можно записать следующим образом:

int sum = 0;

int i = 1;

for (; i <= 100; ) {

sum = sum + i;

i = i + 1; }

Заметим, что вместо одного оператора цикла мы записали несколько операторов, заключенных в фигурные скобки - блок. Другой вариант:

int sum = 0;

int i = 1;

for (; ;) {

if (i > 100)

break; sum = sum + i;

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



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