Profilpipe.ru

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

Задача про кирпич паскаль

Http://inf. 1september ru/article php?ID=200800604 Мнения Почему Паскаль?

Предмет программирования можно, да, наверное, и нужно разбивать на два: на технологию написания программы и на алгоритмизацию, которая скорее искусство, чем технология. Опытные люди знают, что изобретение алгоритма зачастую главная проблема; если алгоритм написан, то остальное уже дело техники. Отсюда следует вроде бы логичный вывод: если написание программы по алгоритму — дело неизмеримо более простое, нежели алгоритмизация, то нюансы этой технологии имеют намного меньшую ценность, нежели умение алгоритмизации, а следовательно, и выбор языка программирования — дело не вполне существенное. Пусть это будет Бейсик, Паскаль, Си или что-то еще, неважно.

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

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

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

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

Язык должен быть “хорошим”, это понятно, но что означает “хорошесть” в отношении языка программирования? Термин этот очень неопределенный, субъективный, и, значит, его необходимо несколько прояснить.

Конечно же, “хороший” означает хорошо подходящий для конкретной сферы деятельности. Сферу определить очень важно. К примеру, FoxPro хорош для разработки баз данных, но вряд ли стоит писать на нем программу, играющую в шахматы. QBasic достаточно хорош, если нужно написать небольшую арифметическую задачу, но вряд ли стоит на нем писать большую математическую библиотеку, и т.д., перечень примеров можно продолжать до бесконечности.

Кроме того, необходимо четко понимать, что хорошесть языка в одной сфере нельзя автоматически переносить на другую. Мне иногда приходится спорить с людьми, считающими, что процесс обучения необходимо строить на базе языка Си. И в этих спорах я часто слышу такой аргумент: “Язык Си очень хорош для промышленного программирования, а значит, на нем и надо учить”.

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

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

1. Поддержка структурного программирования и нисходящего проектирования.

2. Сильная типизация, причем именная, а не структурная.

3. Все объявления должны записываться до первой исполняемой команды.

4. Статический контроль типов.

5. Конструкции языка не должны быть перегружены вариантами исполнения.

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

7. Расширяемость языка его же средствами.

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

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

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

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

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

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

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

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

Поддержка структурного программирования

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

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

Читать еще:  Норма каменщика кирпичей за день

Здесь D и E подчинены C, но никак не B и даже не A. Для большей функциональности можно допустить, что D и E могут сотрудничать между собой. C и B подчинены A и могут сотрудничать между собой. В такой иерархической форме устроено очень многое. Так устроены почти все человеческие организации. Например, президент компании может дать распоряжение начальнику подразделения компании, но никак не сотрудникам этого подразделения, хотя формально они ему обязаны подчиниться. Но иерархия требует упорядочить взаимоотношения. Четкая структура взаимного подчинения минимизирует организационные проблемы и делает управляемой сколь угодно большую организацию. Следовательно, иерархия — это средство борьбы с хаосом во имя эффективности управления. Вот почему множество паскалевских процедур устроено именно так. Пример ниже:

MODULE example;
PROCEDURE a*;
PROCEDURE b;
PROCEDURE c;
BEGIN
END c;
BEGIN
c; (*правильный вызов*)
END b;
BEGIN
c;(*ошибка, необъявленный идентификатор*)
END a;
END example.

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

MODULE example;
IMPORT StdLog;
PROCEDURE G(a:INTEGER):INTEGER;
BEGIN
IF a = 1 THEN RETURN 1
(* альтернатива ELSE проверяться не будет*)
ELSE RETURN 2;
END;
END G;
PROCEDURE p*;
BEGIN
t(G(1));
t(G(2));
END p;
END example.

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

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

Статический контроль типов

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

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

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

DIM u AS INTEGER
DIM w AS INTEGER
CLS
a = 7.3
b = 6.3
u = a
u = u + b
w = a + b
PRINT u, w

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

Такая программа на языке Паскаль просто невозможна.

Легкость модификации текста

Составной оператор Паскаля — необходимое средство структурирования текста внутри процедуры. Но два ключевых слова Begin и End мало того, что могут утяжелить программу, это половина беды. Эти два слова для многих учеников создают сложности в построении нужной структуры. Поясню примером. Пусть требуется построить цикл с группой операций внутри. Ученик понимает, что нужно построить составной оператор, включающий в себя все операции тела цикла, и он делает это вот так:

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

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

IF Условие THEN
Группа команд
ELSE
Группа команд
END

выглядит более изящно, нежели

if Условие then
begin
Группа команд
end
else
begin
Группа команд
end;

записанная на старом Паскале.

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

В заключение. Аргументы “за” можно продолжить, но я приведу только еще один. Есть такая форма записи программы — псевдокод. Это запись алгоритма на некотором промежуточном языке, что-то среднее между естественным языком и языком программирования. Когда-то я с группой своих старших учеников озадачился следующей проблемой: что есть хороший псевдокод? Должен сказать, что в той группе все владели по крайней мере двумя языками: Паскаль и Си примерно в равной степени. Так вот, наш первый вариант псевдокода подозрительно сильно был похож на язык Паскаль.
И тогда лично у меня возникла мысль, что Н.Вирт угадал в языке Паскаль естественный способ записи алгоритма.

Читать еще:  Как сделать каменный кирпич с монстрами

Tukaqarabe’s blog

Travel

02/06/2012

Скачать бесплатно задачи в паскаль

Скачать бесплатно задачи в паскаль!

артерия скачать бесплатно новые песни скачать бесплатно задачи в паскаль информация о мазде кино питон 2 скачать бесплатно джентельмены удачи музыка со словами бесплатные порно сайты скачивания фото бесплатно скачать jimm-aspro java для sony ericsson w900i скачать справочник по ремонту трёхфазных асинхронных двигателей скачать бесплатно плеер, который воспроизводит формат flv песни ваенга елена кирсанов веб-дизайн скачать бесплатно скачать бесплатно задачи в паскаль
Скачать бесплатно задачи в паскаль
Скачать бесплатно решебник по геометрии для 10 класса погорелова Программа по квантовой химии priroda-06 скачать Анимал джаз скачать реквием Текст песни неман дивная река Песня снежинка маликов mp3 Скачать реферат на тему возрастная психолингвистика Игра на телефон бионикл Понятие землеустойства скачать курсовую бесплатно Скачать секс за долги Организация системы обучения персонала.реферат

А пока полетом этого самолета и всех прочих машин в этом секторе руководила группа, соседняя с группой Кейза, — та самая, за которой в дополнение к своему основному сектору наблюдал молодой негр Перри Юнт. Только редкий седой, а не рыжий пух вокруг тонзуры натолкнул его на мысль, что это и есть старший брат Аллена — Фостер Доллас, тот самый Фостер, о чьем сенсационном отречении от сует мира недавно кричала вся американская пресса. Я скажу, что это Плешивый, которому стало дурно от страха.

  • Comment 0
  • Reblog It 0

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

Проведение документа поступление товаров и услуг операция не выполнена!

реферат на тему приватизация в украине проведение документа поступление товаров и услуг операция не выполнена библиотека.оскар уальд.портрет дориана грея.скачать книгу скачать чит 1.6 cs badboy v4.2 телефонный справочник г речица гомельской области белоруссия завершение эпохи индустриального общества. 1945-1970г. реферат клип хит леджер видео фристайл на квадроциклах смотреть фильм девчачий бой проведение документа поступление товаров и услуг операция не выполнена
Проведение документа поступление товаров и услуг операция не выполнена
Вся информация о курении Достар в океане глаз твоих тону скачать Игра c 2 Установочный драйвер для модема микронет

Инженерная служба армии непозволительно отставала. Одно богатство могло бы возвратить нам наш дом, а у нас его не было. Тигрицы, говорят, и те любят своих детенышей. Еще никогда в жизни ему не было так страшно. Я сам себе запрещаю и разрешаю. С тех пор как мы посетили Бразилию, там произошло одно значительное событие: аяхуаска — смесь из растений, обладающая галлюциногенным эффектом, была официально разрешена к применению представителям двух местных религий. Когда они пересекали какую-то площадь, священник в толпе крикнул: «Убейте их! Позднее Питер узнал, что это Альгамбра.

  • Comment 0
  • Reblog It 0

Саунд трек к фильму пришельцы в америке

Саунд трек к фильму пришельцы в америке!

скачать песню квин шоу масгоо саунд трек к фильму пришельцы в америке видео кузя шняга шняжная скачать бесплатно kerish doctor скачать звуки африканского там тама несовершеннолетние девочки скачать бесплатные игры для девочек с которыми можно играть палатки фото искусство франции реферат бесплатно список литературы группа фабрика клик мы такие разные фото photoshop cs2 программа скачать саунд трек к фильму пришельцы в америке
Саунд трек к фильму пришельцы в америке
Tomtom скачать + для кпк Домены скачать бесплатно Документы подтверждающие право требовать долг по договору цессии

Мой отец, сэр Питер Брум, был рыцарем, но он погиб рядом со мной, сражаясь за Ричарда на Босвортском поле, где я получил эту ра- ну, — Питер показал шрам на своем лице. Высоко над входом, залитым ярким светом прожекторов, устремлялись в небо футуристические параболы — творение общепризнанного победителя международного конкурса скульпторов, символизирующее, как тогда было сказано, благородное будущее авиации. Когда я спросил, что они от меня хотят, они вместо ответа поднесли к моему лицу распятие. Маре болтал ногами и, хитро прищурившись, дерзко рассматривал кардинала. Можно было безошибочно утверждать, что они куплены в Шотландии. Что же ты предпримешь, Джакомо? Подобные новости заставили меня глубоко задуматься. Мы, конечно, все бы залегли в ней, если заранее знали, как спокойно будут выдерживать натиск воды бесчисленные найтовы и плетеные бамбуковые стены.

Определите, может ли кирпич, имеющий форму прямоугольного параллелепипеда с ребрами a, b, c, пройти через прямоугольное отверстие со сторонами х и y (при этом стороны параллелепипеда параллельны сторо?

Информатика | 10 — 11 классы

Определите, может ли кирпич, имеющий форму прямоугольного параллелепипеда с ребрами a, b, c, пройти через прямоугольное отверстие со сторонами х и y (при этом стороны параллелепипеда параллельны сторонам отверстия).

Считать, что при равенстве размеров отверстия и кирпича, кирпич не может пройти в отверстие.

var a, b, c, x, y : real ;

write(‘Ребро параллелепипеда а = ‘) ;

write(‘Ребро параллелепипеда b = ‘) ;

write(‘Ребро параллелепипеда c = ‘) ;

write(‘Сторона отверстия х = ‘) ;

write(‘Сторона отверстия y = ‘) ;

if ((a&lt ; x) and (b&lt ; y)) or

((b&lt ; x) and (c&lt ; y)) then

writeln(‘Может пройти’) else writeln(‘Не может пройти’) ;

Имеется прямоугольное отверстие со сторонами a и b и кирпич с рёбрами x, y z?

Имеется прямоугольное отверстие со сторонами a и b и кирпич с рёбрами x, y z.

Требуется составить условие прохождения кирпича в отверстие.

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

Решить в Паскале (без массива) №1 Составьте не менее трёх вариантов программы определения наименьшего их трех данных чисел?

Решить в Паскале (без массива) №1 Составьте не менее трёх вариантов программы определения наименьшего их трех данных чисел.

№2 Составить программу сортировки по возрастанию значений трёх переменных : А, В, С .

№3 Заданы Размеры а, в прямоугольного отверстия x, y, z кирпича.

Определить пройдет ли кирпич через отверстие .

ЗАДАЧА — в стене существует квадратное отверстие n * n см?

ЗАДАЧА — в стене существует квадратное отверстие n * n см.

И кирпич с измерениями АВС, определите пройдёт он в отверстие или нет, если подавать его можно только параллельно стенкам отверстия !

— РЕШИТЬ ПО ПРОГРАММЕ «АВС ПАСКАЛЬ».

Даны действительные положительные числа а, b, с, х, у?

Даны действительные положительные числа а, b, с, х, у.

Выяснить, пройдет ли кирпич с ребрами а, b, с в прямоугольное отверстие со сторонами х и у.

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

Читать еще:  Облицовочный кирпич устройство проема

Даны действительные положительные числа а, b, с, х, у?

Даны действительные положительные числа а, b, с, х, у.

Выяснить, пройдет ли кирпич с ребрами а,

b, с в прямоугольное отверстие со сторонами х и у.

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

Даны положительные числа a, b, c, x?

Даны положительные числа a, b, c, x.

Выясните, пройдёт ли кирпич с рёбрами a, b, c в квадратное отверстие со стороной x.

Решить в паскале.

Помогите пожалуйста с информатикой, очень нужно Нарисуйте блок — схему для решения следующей задачи : может ли бревно с радиусом R пролезть в прямоугольное отверстие с размерами А и В?

Помогите пожалуйста с информатикой, очень нужно Нарисуйте блок — схему для решения следующей задачи : может ли бревно с радиусом R пролезть в прямоугольное отверстие с размерами А и В?

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

HEEELP MY PLEASE Заданы размеры А, В прямоугольного отверстия и размеры X, Y, Z кирпича, Определить пройдёт ли кирпич через отверстие?

HEEELP MY PLEASE Заданы размеры А, В прямоугольного отверстия и размеры X, Y, Z кирпича, Определить пройдёт ли кирпич через отверстие.

Заданы размеры А, В прямоугольного отверстия и размеры Х, Y, Z кирпича?

Заданы размеры А, В прямоугольного отверстия и размеры Х, Y, Z кирпича.

Определите, пройдет ли кирпич через отверстие.

Нужна через паскаль.

Над двумя кирпичами три запятые?

Над двумя кирпичами три запятые.

На этой странице сайта, в категории Информатика размещен ответ на вопрос Определите, может ли кирпич, имеющий форму прямоугольного параллелепипеда с ребрами a, b, c, пройти через прямоугольное отверстие со сторонами х и y (при этом стороны параллелепипеда параллельны сторо?. По уровню сложности вопрос рассчитан на учащихся 10 — 11 классов. Чтобы получить дополнительную информацию по интересующей теме, воспользуйтесь автоматическим поиском в этой же категории, чтобы ознакомиться с ответами на похожие вопросы. В верхней части страницы расположена кнопка, с помощью которой можно сформулировать новый вопрос, который наиболее полно отвечает критериям поиска. Удобный интерфейс позволяет обсудить интересующую тему с посетителями в комментариях.

Var Summ, Mat, Fizik, Geogr, Biolog, Fizra : integer ; Begin Writeln(‘Enter rating’) ; Readln(Mat, Fizik, Geogr, Biolog, Fizra) ; Summ : = Mat + Fizik + Geogr + Biolog + Fizra ; Writeln(Summ) ; end.

1) фигура 2) 3) Алгоритм 6 7)схема 8) компьютер.

Program ; var a, sum, k : integer ; sr : real ; Begin sum : = 0 ; k : = 0 ; while a0 do begin read(a) ; sum : = sum + a ; k : = k + 1 ; end ; sr : = sum / k ; writeln(sr) ; End.

Если для урока информатики, то переменные разделяем на два блока. Константа — π = 3, 1415926543 и остальное.

Использовать Робот алг нач закрасить закрас закрас кон алг закрас нач нц пока слева свободно закрасить влево кц нц пока сверху свободно закрасить вверх кц нц пока справа свободно закрасить вправо кц нц пока снизу свободно закрасить вниз кц кон.

Титры в графиеском режиме.

/ / PascalABC. NET 3. 2, сборка 1389 от 01. 03. 2017 / / Внимание! Если программа не работает, обновите версию! Begin Writeln(ReadSeqIntegerWhile(g — >g0). Where(x — >(x mod 20) and (x mod 7 = 0)). Sum()) ; end.

Алгоритм действий это цепочка действий которая приведёт к заключению. Допустим план «создания папки на раб столе» Щелчок правой кнопкой мыши = 》Видение мыши до «создать папку» = 》 Щелчок левой кнопкой мыши = СОЗДАНАЯ ПАПКА.

10 * 12 * 12 * 12 * 10 * 10 = 10 ^ 3 * 12 ^ 3 = 1728000.

1 семестр сессия / Bilet27

Билет №27. Понятие о языках программирования.

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

В естественных языках семантика определяется неформально, так что смысл слова или фразы зависит, в том числе и от «окружения», т.е. от соседних слов и фраз и сформулировать семантические правила практически невозможно.

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

Любая программа общается с пользователем на некотором формальном языке, даже если он называется «подмножеством естественного языка». Система команд компьютера также является формальным языком. Этот язык носит название машинного языка. Процессор компьютера способен понимать непосредственно только машинный язык (который для него является «естественным»).

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

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

Существует много различных языков программирования высокого уровня — Бейсик, Фортран, С, Паскаль и др. и соответствующих систем программирования. Мы в дальнейшем будем иметь дело исключительно с языком Паскаль — одним из лучших и популярных языков программирования.

голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector