на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Основы алгоритмизации и программирования
p align="left">Вспомогательный (подчиненный) алгоритм (процедура) - алгоритм, ранее разработанный и целиком используемый при алгоритмизации конкретной задачи. В некоторых случаях при наличии одинаковых последовательностей указаний (команд) для различных данных с целью сокращения записи также выделяют вспомогательный алгоритм.

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

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

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

Можно встретить даже такое утверждение: “Внешне алгоритм представляет собой схему - набор прямоугольников и других символов, внутри которых записывается, что вычисляется, что вводится в машину и что выдается на печать и другие средства отображения информации “. Здесь форма представления алгоритма смешивается с самим алгоритмом.

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

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

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

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

В учебниках по информатике обычно пишут, что исполнителем алгоритма может быть и человек. На самом деле алгоритмы для людей никто не составляет (не будем забывать, что не всякий набор дискретных операций является алгоритмом). Человек в принципе не может действовать по алгоритму. Выполнение алгоритма - это автоматическое, бездумное выполнение операций. Человек всегда действует осмысленно. Для того чтобы человек мог выполнять какой-то набор операций, ему нужно объяснить, как это делается. Любую работу человек сможет выполнять только тогда, когда он понимает, как она выполняется.

Вот в этом - “объяснение и понимание” - и кроется различие между понятиями “алгоритм” и “способ”, “метод”, “правило”. Правила выполнения арифметических операций - это именно правила (или способы), а не алгоритмы. Конечно, эти правила можно изложить в виде алгоритмов, но толку от этого не будет. Для того чтобы человек смог считать по правилам арифметики, его нужно научить. А если есть процесс обучения, значит, мы имеем дело не с алгоритмом, а с методом.

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

Очень ярко эта особенность человеческой психологии - неалгоритмичность мышления - проявилась в методическом пособии А. Г. Гейна и В. Ф. Шолоховича. В пособии излагаются решения задач из известного учебника. Решения задач должны быть представлены в виде алгоритмов. Однако авторы пособия понимают, что если просто написать алгоритм решения задачи, то разобраться в самом решении будет трудно. Поэтому они сначала приводят “нечеткое изложение алгоритма” (т. е. объясняют решение задачи), а затем пишут сам алгоритм.

2. ЭЛЕМЕНТЫ ЯЗЫКА TURBO PASCAL

2.1. Алфавит

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

Латинские буквы: от A до Z (прописные) и от a до z (строчные).

Цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

Шестнадцатеричные цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

Специальные символы: + - * / = < > [ ] . , ( ) : ; { } ^ @ $ #.

Следующие комбинации специальных символов являются едиными символами (их нельзя разделять пробелами):

:= знак присваивания;

>= больше или равно;

<> не равно;

<= меньше или равно;

(**) ограничители комментариев (используются наряду с {});

(..) эквивалент [].

Пробелы - символ пробела (ASCII-32) и все управляющие символы кода ASCII (от 0 до 31).

К спецсимволам относятся служебные слова, смысл которых определен однозначно. Служебные слова не могут быть использованы для других целей. С точки зрения языка это единые символы. Вот список служебных слов Турбо Паскаля:

absolute

end

inline

procedure

type

and

external

interface

program

unit

array

file

interrupt

record

until

begin

for

label

repeat

uses

case

forward

mod

set

var

const

function

nil

shl

while

div

goto

not

shr

with

do

if

of

string

xor

downto

implementation

or

then

else

in

packed

to

Последние версии языка содержат еще ряд служебных слов, относящихся к работе с объектами и встроенным ассемблером.

2.2. Идентификаторы

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

Рис.1

Расшифровать это можно так: идентификатор - это любая последовательность букв и цифр, начинающаяся с буквы. В Турбо Паскале к буквам приравнивается также знак подчеркивания. Строчные и прописные буквы в идентификаторах и служебных словах не различаются. Например: max, MAX, MaX и mAx - одно и то же имя.

Длина идентификатора может быть произвольной, но значащими являются только первые 63 символа.

2.3. Комментарии

Следующие конструкции представляют собой комментарии и поэтому игнорируются компилятором:

{любой текст, не содержащий символ «}»}

(*любой текст, не содержащий символы «*)»*)

Буквы русского алфавита употребляются только в комментариях, в литерных и текстовых константах.

Строка, начинающаяся с символов {$ или (*$, является директивой компилятора. За этими символами следует мнемоника команды компилятора.

3. ЛЕКСИКА ЯЗЫКА ПРОГРАММИРОВАНИЯ СИ

Множество символов Си включает большие и малые буквы латинского алфавита и 10 десятичных арабских цифр:

большие заглавные буквы:

ABCDEFGHIJKLMNOPQRSTUVWXYZ

малые строчные буквы:

abcdefghijklmnopqrstuvwxyz

десятичные цифры:

0123456789

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

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

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

Таблица 3.1. Знаки пунктуации и специальные символы

Символ

Наименование

Символ

Наименование

,

Запятая

!

Восклицательный знак

.

Точка

|

Вертикальная черта

;

Точка с запятой

/

Наклонная черта вправо

:

Двоеточие

\

Наклонная черта влево

?

Знак вопроса

~

Тильда

`

Одиночная кавычка

_

Подчеркивание

(

Левая круглая скобка

#

Знак номера

Продолжение табл. 3.1

Символ

Наименование

Символ

Наименование

)

Правая круглая скобка

%

Знак процента

{

Левая фигурная скобка

&

Амперсанд

}

Правая фигурная скобка

^

«Крышка», Caret

<

Левая угловая скобка

-

Знак минус

>

Правая угловая скобка

=

Знак равно

[

Левая квадратная скобка

+

Знак плюс

]

Правая квадратная скобка

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

В табл. 3.2 приведен список ESC-последовательностей языка Си.

Таблица 3.2. ESC-последовательности

ESC-последовательность

Наименование

\n

Новая строка

\t

Горизонтальная табуляция

\v

Вертикальная табуляция

\b

Пробел

\r

Возврат каретки

\f

Новая страница

\a

Звонок (сигнал)

\

Одиночная кавычка

\”

Двойная кавычка

\\

Наклонная черта влево

\ddd

ASCII символ с восьмеричным представлением

\xdd

ASCII символ в шестнадцатеричном представлении

Если наклонная черта влево предшествует символу, не включенному в этот список, то наклонная черта влево игнорируется. Например, изображение \c представляет символ «с» в символьной строке или констант-символе.

Последовательности \ddd и \xdd позволяют задать любой символ в ASCII как последовательность от одной до трех восьмеричных цифр или от одной до двух шестнадцатеричных цифр. Например, символ пробела может быть задан как \010, \10, \x08 или \x8. Код ASCII «нуль» может быть задан как \0 или \x0.

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

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

Таблица 3.3. Операции

Операция

Наименование

Операция

Наименование

!

Логическое НЕ

|

Логическое ИЛИ

~

Побитовое дополнение

&&

Логическое И

+

Сложение

?:

Операция условного выражения

-

Вычитание, арифметическое отрицание

++

Инкремент

*

Умножение

--

Декремент

/

Деление

=

Простое присваивание

%

Остаток

+=

Сложение с присваиванием

<<

Сдвиг влево

-=

Вычитание с присваиванием

>>

Сдвиг вправо

*=

Умножение с присваиванием

<

Меньше

/=

Деление с присваиванием

<=

Меньше или равно

%=

Остаток с присваиванием

>

Больше

>>=

Сдвиг вправо с присваиванием

>=

Больше или равно

<<=

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

Операция

Наименование

Операция

Наименование

==

Равно

&=

Побитовое И с присваиванием

!=

Не равно

|=

Побитовое включающее ИЛИ с присваиванием

&

Побитовое И, адрес от

^=

Побитовое исключающее ИЛИ с присваиванием

|

Побитовое включающее ИЛИ

,

Последовательное выполнение (запятая)

^

Побитовое исключающее ИЛИ

Ключевые слова. Ключевые (зарезервированные) слова - это предопределенные последовательности символов, которые имеют специальное значение для компилятора Си. Их можно использовать только так, как они определены. Имена объектов программы не могут совпадать с названиями ключевых слов.

Список ключевых слов:

auto

double

int

struct

break

else

long

switch

case

enum

register

typedef

char

extern

return

union

const

float

short

unsigned

continue

for

signed

void

default

goto

sizeof

while

do

if

static

volatile

Комментарии. Комментарий - это последовательность символов, которая воспринимается компилятором как отдельный пробельный символ или, другими словами, игнорируется.

Комментарий имеет следующую форму представления:

/*<символы>*/,

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

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

ЛИТЕРАТУРА

1. Голицына О.Л, Попов И.И. Основы алгоритмизации и программирования: Учеб. пособие. - М.: ФОРУМ: ИНФРА-М. 2004. - 432 с. - (серия «Профессиональное образование»).

2. Семакин И.Г., Шестаков А.П. Основы программирования: Учебник для среднего профессионального образования. - М.: Издательский центр «Академия». 2003. - 432 с.

3. Нестеренко А. В. ЭВМ и профессия программиста. М., Просвещение, 1990.

4. Брудно А. Л., Каплан Л. И. Московские олимпиады по программированию. М., Наука, 1990.

3. Гейн А.Г. и др.. Основы информатики и вычислительной техники. М., Просвещение, 1994.

4. Касаткин В.Н. Информация, алгоритмы, ЭВМ. М., Просвещение, 1991.

5. Гейн А. Г., Шолохович В.Ф. Преподавание курса “Основы информатики и вычислительной техники” в средней школе. Руководство для учителя. Екатеринбург, 1992.

6. Извозчиков В.А. Информатика в понятиях и терминах.

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



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