Letysite.ru

IT Новости с интернет пространства
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Алгоритмические языки программирования относятся к

Алгоритмический язык программирования

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

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

Алголо-подобный алгоритмический язык с русским синтаксисом был введён в употребление академиком А. П. Ершовым в середине 1980-х годов, в качестве основы для «безмашинного» курса информатики.

Основные служебные слова алгоритмического языка

  • алг (алгоритм)
  • арг (аргумент)
  • рез (результат)
  • нач (начало) — начало алгоритма
  • кон (конец) — конец алгоритма
  • дано — исходные данные в произвольной форме
  • надо — цель алгоритма
  • утв
  • цел (целый)
  • вещ (вещественный)
  • сим (символьный)
  • лит (литера) — строка
  • лог (логический)
  • таб(таблица) — для обозначения массива
  • длин (длина) — количество элементов массива
  • если
  • то
  • иначе
  • все
  • выбор
  • при
  • знач
  • нц (начало цикла)
  • кц (конец цикла)
  • пока
  • для
  • от
  • до
  • шаг

Логические функции и значения для составления выражений

  • и
  • или
  • не
  • да
  • нет
  • ввод
  • вывод

Общий вид алгоритма

Часть алгоритма от слова алг до слова нач называется заголовком , а часть, заключенная между словами нач и кон — телом алгоритма .

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

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

Основные алгоритмические структуры

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

Алгоритмические языки программирования.

Компьютер может выполнять программу только в том случае, если содержащиеся в ней команды представлены в двоичном машинном коде, т.е. выражены на языке, алфавит которого состоит из логических единиц и нулей. Для первых компьютеров программы составлялись непосредственно в машинных кодах, что требовало высокой квалификации программистов и больших затрат труда, поэтому уже в 40-х годах началась разработка языков программирования, которые по своей лексике были бы максимально приближены к естественному языку человека. Такие языки программирования называются алгоритмическими.

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

Первым алгоритмическим языком стал Fortran, созданный в 1957г. специалистами фирмы IBM под руководством Джона Бекуса. Сейчас существует большое множество алгоритмических языков: Pascal, C, Algol, PL1, Basic, Lisp, Prolog и многие другие.

Алгоритмические языки и ассемблеры относятся к языками символьного кодирования, т.е. к языкам, которые оперируют не машинными кодами, а условными символьными обозначениями, поэтому программы, составленные на этих языках, не могут быть непосредственно выполнены на компьютере. Чтобы такая программа заработала, ее текст нужно преобразовать в машинные коды. Для этого существуют специальные программы-переводчики (трансляторы). Различают 2 вида трансляторов- компилятор и интерпретатор. Компилятор транслирует программу сразу целиком, и лишь после этого возможно ее выполнение. Интерпретатор — это более простой транслятор, он последовательно транслирует операторы программы и так же по частям ее выполняет.

21) Структура программы на языке С/C++.

Программа на языке С++ состоит из функций, описаний и директив препроцессора. Одна из функций должна иметь имя main. Выполнение программы начинается с первого оператора этой функции. Простейшее определение функции имеет следующий формат:

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

  • если функция не должна возвращать значение, указывается тип void:
  • тело функции является блоком и, следовательно, заключается в фигурные скобки;
  • функции не могут быть вложенными;
  • каждый оператор заканчивается точкой с запятой (кроме составного оператора).

Пример структуры программы, содержащей функции main, fl и f2:

Программа может состоять из нескольких модулей (исходных файлов).

Несколько замечаний о вводе/выводе в C++

В языке С++ нет встроенных средств ввода/вывода — он осуществляется с помощью функций, типов и объектов, содержащихся в стандартных библиотеках. Используется два способа: функции, унаследованные из языка С, и объекты С++.

Основные функции ввода/вывода в стиле С:

Читать еще:  Gmail небезопасные приложения

int scanf (const char* format, . ) // ввод
int printf(const char* format, . ) // вывод

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

Пример программы, использующей функции ввода/вывода в стиле С:

#include
int main() <
int i;
printf(«Введите целое числоп»);
scanf(«%d», &i);
printf(«Вы ввели число %d, спасибо!», i);
return 0;
>

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

Третья строка — описание переменной целого типа с именем i.

Функция printf в четвертой строке выводит приглашение «Введите целое число» и переходит на новую строку в соответствии с управляющей последовательностью n. Функция scanf заносит введенное с клавиатуры целое число в переменную i (знак & означает операцию получения адреса), а следующий оператор выводит на экран указанную в нем строку, заменив спецификацию преобразова-
ния на значение этого числа.

А вот как выглядит та же программа с использованием библиотеки классов С++:

#include
int main() <
int i;
cout > i;
cout >.

22) Алфавит и идентификаторы в языке С/C++.

АЛФАВИТ
• прописные и строчные латинские буквы и знак подчеркивания;
• арабские цифры от 0 до 9;
• пробельные символы: пробел, символы табуляции, символы перехода на но­ вую строку.
• специальные знаки:

Из символов алфавита формируются лексемы языка:
• идентификаторы;
• ключевые (зарезервированные) слова;
• знаки операций;
• константы;
• разделители (скобки, точка, запятая, пробельные символы).

ИДЕНТИФИКАТОРЫ
• В идентификаторе могут использоваться латинские буквы, цифры и знак подчеркивания;
• Прописные и строчные буквы различаются;
• Первым символом идентификатора может быть буква или знак подчеркивания, но не цифра;
• Пробелы внутри имен не допускаются;
• Длина идентификатора по стандарту не ограничена, но некоторые компиляторы и компоновщики налагают на нее ограничения;
• Идентификатор не должен совпадать с ключевыми словами;
• Не рекомендуется начинать идентификаторы с символа подчеркивания (могут совпасть с именами системных функций или переменных);
• На идентификаторы, используемые для определения внешних переменных;
• Есть ограничения компоновщика (использование различных компоновщиков или версий компоновщика накладывает разные требования на имена внешних переменных).

Ключевые слова С++

23) Целые типы данных в языке С/C++.

Целый тип данных предназначен для представления в памяти компьютера обычных целых чисел. Основным и наиболее употребительным целым типом является тип int. Гораздо реже используют его разновидности: short (короткое целое) и long (длинное целое). Также к целым типам относится тип char (символьный). Кроме того, при необходимости можно использовать и тип long long (длинное-предлинное!), который хотя и не определён стандартом, но поддерживается многими компиляторами C++. По-умолчанию все целые типы являются знаковыми, т.е. старший бит в таких числах определяет знак числа: 0 — число положительное, 1 — число отрицательное. Кроме знаковых чисел на C++ можно использовать беззнаковые. В этом случае все разряды участвуют в формировании целого числа. При описании беззнаковыхцелыхпеременных добавляется слово unsigned (без знака).

Сводная таблица знаковых целых типов данных:

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

Алгоритмические языки

Программирование начиналось с записи программ непосредственно в виде машинных команд (в кодах, как говорят программисты). Позже для облегчения кодирования был разработан язык Ассемблера, который позволяет записывать машинные команды в символическом виде. Например, программисту не нужно помнить числовой код операции сложения, вместо этого можно использовать символическое обозначение ADD . Язык Ассемблера зависит от системы команд конкретного компьютера. Он достаточно удобен для программирования небольших задач, требующих максимальной скорости выполнения. Однако крупные проекты разрабатывать на языке Ассемблера трудно. Главная проблема состоит в том, что программа , написанная на Ассемблере, привязана к архитектуре конкретного компьютера и не может быть перенесена на другие машины. При усовершенствовании компьютера все программы на Ассемблере приходится переписывать заново.

Почти сразу с возникновением компьютеров были разработаны языки высокого уровня, т.е. языки, не зависящие от конкретной архитектуры. Для выполнения программы на языке высокого уровня ее нужно сначала перевести на язык машинных команд. Специальная программа , выполняющая такой перевод, называется транслятором или компилятором. Оттранслированная программа затем выполняется непосредственно компьютером. Существует также возможность перевода программы на промежуточный язык , не зависящий от архитектуры конкретного компьютера, но тем не менее максимально приближенный к языку машинных команд. Затем программа на промежуточном языке выполняется специальной программой, которая называется интерпретатором. Возможен также вариант компиляции «на лету» (Just In Time Compilation ), когда выполняемый фрагмент программы переводится с промежуточного языка на язык машинных команд непосредственно перед выполнением.

Наиболее распространенные компилируемые языки — это Си , C++, Фортран, Паскаль . Интерпретируемые и компилируемые на лету языки — это в основном объектно-ориентированные языки, такие как Java , Visual Basic и C#. Все они вначале переводятся на промежуточный язык : для Java это так называемый байткод языка Java , для Visual Basic и C# — так называемый промежуточный язык ( Intermediate Language или просто IL), являющийся одним из основных компонентов платформы «. Net » фирмы Microsoft. Промежуточный язык может интерпретироваться специальным исполнителем (например, виртуальной Java -машиной), но, как правило, в современных системах применяется компиляция на лету, что позволяет достичь большего быстродействия.

Читать еще:  Шпаргалка по 1с программированию

Исторически одним из первых языков высокого уровня был Фортран. Он оказался исключительно удачным — простым и в то же время очень эффективным. До сих пор большая часть научных и инженерных программ написана на Фортране. Тем не менее, в последние 20 лет программисты отдают предпочтение языку Си и связанной с ним линии объектно-ориентированных языков — C++, Java и C#.

Другой значительной вехой в истории алгоритмических языков является разработка языка Алгол -60 (расшифровывается как aлгоритмический язык — ALGOrithmic Language ). Возникновение языка Алгол -60 связано с развитием структурного подхода к программированию, в котором используется вложение конструкций языка друг в друга. Так, основная единица языка — оператор — может быть простым или составным, т.е. состоящим в свою очередь из нескольких операторов, заключенных в блок с помощью ключевых слов begin и end . Внутри блока можно описывать локальные переменные, недоступные извне блока, и даже подпрограммы или функции.

Язык Алгол -60 способствовал развитию алгоритмических языков, его наследником является, например, Паскаль и вся линия связанных с ним языков: Modula-2, Oberon и Delphi. Тем не менее, Алгол -60 оказался далеко не таким удачным, как Фортран. В нем присутствовали непродуманные решения, в частности, возможность вложения подпрограмм внутрь других подпрограмм, а также неудачный механизм передачи параметров подпрограмм. Из-за этого Алгол -60 не был реализован на практике в полном соответствии со стандартом (в отличие от языков типа Алгамс, отступавших от стандарта в сторону простоты и удобства использования). Язык Паскаль появился тоже как коррекция Алгола-60, но, к сожалению, унаследовал его главное неудачное решение — вложенность подпрограмм друг в друга. Также в первоначальном варианте языка Паскаль отсутствовала возможность разбиения программы на файлы. Эти недостатки были затем исправлены автором Паскаля, замечательным швейцарским ученым и педагогом Никлаусом Виртом, в языках Modula-2 и Oberon . Но, к сожалению, программистское сообщество проигнорировало язык Oberon , остановившись на немного улучшенном варианте языка Паскаль . В настоящее время Паскаль , как правило, используется для обучения программированию, но не в практической работе.

Наконец, самый успешный язык программирования — язык Си и связанная с ним линия объектно-ориентированных языков: C++, Java , C#. В отличие от Алгола-60, язык Си был создан не теоретиками, а практическими программистами, обладающими при этом высокой математической культурой. Язык был разработан в конце 60-х годов XX века. Он впервые позволил реально избавиться от Ассемблера при создании операционных систем. Например, практически весь текст операционной системы Unix написан на языке Си и, таким образом, не зависит от конкретного компьютера. Главным достоинством Си является его простота и отсутствие псевдонаучных решений (таких, как вложенность блоков программ друг в друга: в Си функция не может содержать внутри себя другую функцию, а переменные четко разделяются на глобальные и локальные — не так, как в Алголе, где локальные переменные подпрограммы являются глобальными для всех вложенных в нее подпрограмм). Просто и ясно описан механизм передачи параметров в функцию (только по значению). Программист, создающий программу на Си , всегда четко понимает, как эта программа будет выполняться. Понятие указателя, статические и автоматические (стековые) переменные языка Си максимально близко отражают устройство любого современного компьютера, поэтому программы на Си эффективны и удобны для отладки.

В настоящее время подавляющая часть программ пишется на языках Си и C++. Интерфейс любой операционной системы (так называемый API — Application Programming Interface ), т.е. набор системных вызовов, предназначенных для разработчиков прикладных программ, как правило, представляет собой набор функций на языке Си . Наконец, современные объектно-ориентированные языки также основаны на языке Си . Это язык C++, занимающий промежуточное положение между традиционными и объектно-ориентированными языками, а также объектно-ориентированные языки Java и C#.

В курсе будем использовать псевдокод для неформальной записи алгоритмов, а также языки Си , C++ и C# для практического программирования. Применение объектно-ориентированных языков C++ и C# значительно облегчает программирование оконных приложений в системах типа Windows , тогда как при разработке программ, не связанных с графическим интерфейсом (например, математических расчетов), можно обойтись и более простым языком Си .

ТЫ, Я и ИНФОРМАТИКА

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

Читать еще:  Активация xp в безопасном режиме

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

Современные языки программирования хорошо приспособлены для описания алгоритмов. Первый язык, специально ориентированный на запись алгоритмов, язык Algol – появился еще в 1960 году. О том, что этот язык ориентирован на работу с алгоритмами указывает само название – Algorithmic Language (алгоритмический язык). Он широко применялся не только в программировании, но и в патентных заявках и даже в научных статьях.

В середине 80-х годов прошлого столетия его заменил в этом качестве язык Pascal, на котором было удобно оформлять алгоритмы в виде процедур и функций. В настоящее время его заменяет язык Java, на котором удобно описывать не только алгоритмы, но и объекты.

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

Например, язык FORTRAN удобен для вычисления по формулам и широко применяется в этом качестве уже несколько десятилетий. На столь же древнем языке COBOL удобно делать экономические расчеты. Язык Perl предназначен для синтаксического анализа и грамматического разбора текстов. Командные языки помогают задать сложные алгоритмы работы операционной системы.

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

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

7.17. Какие компоненты образуют алгоритмический язык? 7.18. Какие понятия используют алгоритмические языки?

7.17. Какие компоненты образуют алгоритмический язык?

Алфавитэто фиксированный для данного языка набор основных символов, т.е. «букв алфавита», из которых должен состоять любой текст на этом языке — никакие другие символы в тексте не допускаются.

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

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

7.18. Какие понятия используют алгоритмические языки?
Каждое понятие алгоритмического языка подразумевает некоторую синтаксическую единицу (конструкцию) и определяемые ею свойства программных объектов или процесса обработки данных.

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

Имена (идентификаторы) — употpебляются для обозначения объектов пpогpаммы (пеpеменных, массивов, функций и дp.).

Опеpации . Типы операций:

    • аpифметические опеpации + , — , * , / и дp. ;
    • логические опеpации и, или, не;
    • опеpации отношения , = , = , <> ;
    • опеpация сцепки (иначе, «присоединения», «конкатенации») символьных значений дpуг с другом с образованием одной длинной строки; изображается знаком «+».

Данныевеличины, обpабатываемые пpогpаммой. Имеется тpи основных вида данных: константы, пеpеменные и массивы

      Константы — это данные, которые зафиксированы в тексте программы и не изменяются в процессе ее выполнения.

      • числовые 7.5, 12;
      • логическиеда (истина), нет (ложь);
      • символьные «А», «+»;
      • литеpные «abcde», «информатика», «» (пустая строка).
  • Пеpеменные обозначаются именами и могут изменять свои значения в ходе выполнения пpогpаммы. Пеpеменные бывают целые, вещественные, логические, символьные и литерные.
  • Массивы — последовательности однотипных элементов, число которых фиксировано и которым присвоено одно имя. Положение элемента в массиве однозначно определяется его индексами (одним, в случае одномерного массива, или несколькими, если массив многомерный). Иногда массивы называют таблицами.

Выpажения — пpедназначаются для выполнения необходимых вычислений, состоят из констант, пеpеменных, указателей функций (напpимеp, exp(x)), объединенных знаками опеpаций.

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

Различают выражения арифметические, логические и строковые.

    • Арифметические выражения служат для определения одного числового значения. Например, (1+sin(x))/2. Значение этого выражения при x=0 равно 0.5, а при x=p/2 — единице.
    • Логические выражения описывают некоторые условия, которые могут удовлетворяться или не удовлетворяться. Таким образом, логическое выражение может принимать только два значения — «истина» или «ложь» (да или нет). Рассмотрим в качестве примера логическое выражение x*x + y*y

Ссылка на основную публикацию
Adblock
detector