русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Then begin


Дата добавления: 2014-02-04; просмотров: 1403; Нарушение авторских прав


End;

Begin

Begin

Begin

Begin

Begin

Begin

Writeln(’Привет!’);

write(’Сколько вам лет: ’);

readln (years);

End.

Результат работы этой программы может быть такой:

Привет! Сколько вам лет: 19

 

 

Program write2;

Var years : integer;

Write(’Привет!’);

writeln(’Сколько вам лет: ’);

readln (years);

End.

Результат работы этой программы может быть такой:

Привет!Сколько вам лет:

 

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

program NiceSuma;

var a, b, s : integer;

Write (’Введите два целых числа через пробел: ’);

Readln (a, b);

s := a + b;

Writeln (’Сумма чисел ’, a, ’ и ’, b, ’ равна ’, s);

end.

 

В последнем операторе writeln выделены строки символов. Они выводятся на экран без изменений. А вместо имен a, b, s выводятся настоящие значения этих переменных, которые хранятся в памяти компьютера.

Обратите внимание на расстановку пробелов в символьных строчках (которые помечены). Если убрать «лишние» пробелы в начале и в конце фраз, то в выводимом на экран тексте не будет разделения между буквами и числами. Будет что-то вроде такого:

Сумма чисел10и15равна25

 

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

Writeln (’Сумма чисел ’, a, ’ и ’, b, ’ равна ’, a+b);

 

Тогда компьютер прямо в этом операторе найдет сумму и выведет её на экран. Если a=10, b=15, то на экран будет выведено:

Сумма чисел 10 и 15 равна 25

 

Ещё раз обратите внимание, что строки



Writeln (’Ответ – число n’);

Writeln (’Ответ – число ’, n);

выполняются по-разному. Первая заставит компьютер напечатать

Ответ – число n ,

а вторая (при n равном 12):

Ответ – число 12

3.3. Самостоятельные задания

· Составьте программу, которая выведет на экран вашу визитную карточку.

· Даны два года: g1, g2 (эти числа вводятся с клавиатуры). Написать, сколько между ними лет.

· Дано: год и месяц начальной даты; год и месяц конечной даты. Вычислить, сколько месяцев между этими датами.

4.Работа с цифрами

Мы уже рассмотрели стандартные операции, которые можно производить с целыми (integer) числами. Теперь разберём основные типы задач, которые решаются с использованием этих операций, а именно: работа с цифрами числа. Это достаточно серьёзный вопрос, который вполне может встретиться на школьном экзамене по информатике.

4.1. Выделение цифр числа

Используя операции деления mod и div можно выделять нужные цифры числа. Проще всего выделить последнюю цифру числа, для этого надо найти остаток от деления числа на 10, например:

3456 mod 10 = 6 – последняя цифра числа 3456

 

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

Существует два способа решения этой задачи.

Первый способ сводится к нахождению последней цифры числа. Для этого надо сначала «отбросить» правую цифру в исходном числе, тогда искомая цифра окажется последней. А последнюю цифру мы умеем находить. Как же «отбросить» последнюю цифру? Очень просто, надо число поделить на 10:

3456 div 10 = 345 - начальное число без последней цифры

Теперь выделим последнюю цифру нового числа:

345 mod 10 = 5 - искомая предпоследняя цифра!

Теперь объединим эти два действия в одно:

3456 div 10 mod 10 = 5.

 

Во втором способе мы подойдём к числу с другой стороны и выделим сначала две крайние правые цифры, получим двузначное число:

3456 mod 100 = 56

Теперь от этого двузначного числа надо «отбросить» последнюю цифру:

56 div 10 = 5

Вот и всё. Осталось только объединить эти два действия в одно:

3456 mod 100 div 10 = 5

 

Ещё раз самостоятельно разберите эти примеры и попробуйте выделить третью с конца цифру двумя способами.

4.2. Конструирование числа по его цифрам

Как из цифр числа составить само число?

Может быть помните, как в 4-ом классе на уроке математики вы расписывали числа по разрядам:

89743 = 8*10000 + 9*1000 + 7*100 + 4*10 + 3

В чём суть этого равенства? В том, что можно числа собирать из цифр, как машинку из деталей конструктора. Например, у нас есть три переменные a, b, c, в которых записаны цифры трёхзначного числа, которое символически можно обозначить так: (abc). Тогда собрать по косточкам это число можно так:

chislo := 100*a + 10*b + c

 

Например, если a=3, b=7, c=1, то

(abc) = 100*3 + 10*7 + 1 = 371

 

Попробуйте аналогичным образом собрать следующие числа из их цифр:

(abcd) (cd) (dbase) (snickers) (dardva)

4.3. Обобщение

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

 

Дано трёхзначное число, переписать его в обратном порядке.

 

Общий принцип решения задания: сначала выделяем все цифры числа, потом собираем их в нужном порядке. Эта идея реализована в следующей программе, где цифры числа хранятся в переменных c1, c2 c3.

 

 

Program Zadom;

Var a, c1, c2, c3, rez : integer;

a := 425; { Данное трёхзначное число }

c3 := a mod 10; { Выделяем третью цифру }

c2 := a div 10 mod 10; { Выделяем вторую цифру }

c1 := a div 100; { Выделяем первую цифру }

rez := c3*100 + c2*10 + c1 { Конструируем нужное число из цифр }

End.

 

Фразы, записанные в {фигурных} скобках, называются комментариями. Комментарии не обрабатываются компьютером, но служат подсказками для человека, читающего программу. Их обязательно надо использовать, поясняя некоторые замысловатые участки программы.

4.4. Самостоятельные задания

1. В трёхзначном числе поменять местами первую и среднюю цифры.

2. В середину двузначного числа вставить две двойки.

3. Из трёхзначного числа «вычеркнуть» среднюю цифру.

4. Выделить из семизначного числа среднюю цифру.

5. В семизначном числе поменять местами 2 и 5 цифры, а также 3 и 4.

6. В пятизначное число вставить двойку после первой цифры и тройку после третьей цифры.

5.Условный оператор

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

Формат записи условного оператора:

if<условие>

Then <оператор1>

Else <оператор2>

 

Здесь <условие> – некоторое утверждение, относительно которого можно сказать: истинно оно или ложно. При выполнении условного оператора компьютер проверяет <условие>. Если оно верно, то выполняется <оператор1>, после чего выполнение условного оператора завершается. Если условие не верно, то компьютер выполняет <оператор2>.

5.1. Что такое условие?

Итак, условие или высказывание – это некоторое утверждение относительно которого можно сказать: истинно оно или ложно.

Примеры высказываний: “светит солнце”; “мне сейчас хорошо”; “сегодня пятница триннадцатое”. Относительно любого из упомянутых высказываний можно сказать: истинны они или нет на данный момент. А вот фразы: “сколько тебе лет?”; “Быть или не быть, вот в чём вопрос?” высказываниями не являются, так как требуют более подробного ответа, чем "Да" или "Нет". Либо совсем не требуют ответа. Приведите сами несколько примеров высказываний.

Теперь посмотрим, что может быть высказыванием (условием) в языке программирования. Самый простой случай – это сравнение двух чисел, например, утверждение «5 больше, чем 3» – это утверждение истинно. Все эти условия и способы их записи в языке Паскаль приведены в таблице:

Таблица3. Математические условия

Математичес-кая запись Наименование Запись в языке Паскаль
a = b равно a = b
a > b больше a > b
a < b меньше a < b
a ≥ b больше или равно a >= b
a ≤ b меньше илии равно a <= b
a ≠ b не равно a <> b

В языке Паскаль существуют условия-константы, которые всегда имеют одно и то же значение. Это утверждение-константа True, которая всегда истинна, и False, которая всегда ложна.

Примеры условий и их значений:

5 > 3 истинно 4 <= 4 истинно
a+1 = a ложно a <> a ложно
True истинно False ложно

 

Примеры выражений, которые не являются условиями:

5 + 5 Это арифметическое выражение целого типа
a + b Это тоже некоторое выражение нелогического типа, так как логические выражения нельзя складывать операцией "+".
a := 5 Оператор присваивания (как и любой другой оператор) не может быть условием.

 

Приведём пример использования условного оператора:

ifnashi > vashi

Then writeln (’Победа за нами! Ура!!!’)

Else writeln (’Главное – не победа, а участие!’);

При выполнении этого условного оператора компьютер напечатает ликующую фразу, если "наши" набрали больше очков, чем "ваши" (условие nashi>vashi верно), либо ободряющий лозунг в обратном случае (условие nashi>vashi не верно, то есть либо nashi<vashi, либо nashi=vashi).

Обратите внимание, что точка с запятой перед служебным словом else не ставится, потому что точка с запятой используется только для разделения операторов друг от друга, а структура ifthenelse – это один оператор, хотя он и содержит в себе два других. Точка с запятой ставится только в конце условного оператора.

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

15 <= (d*x+y),

где вместо a записали константу 15, а вместо b выражение (d*x+y).

Давайте теперь вместе составим небольшую программу, которая попросит ввести два числа a и b, и найдёт из них максимальное. Для этого в условном операторе надо воспользоваться условием, при истинности которого можно будет утверждать, что одно число точно больше другого. Это условие "a > b". Если оно истинно, то максимальным будет число a, и его надо будет вывести на экран. Если это условие ложно, то либо максимальным будет число b, либо a и b равны между собой. В любом случае печатаем значение переменной b.

Вот программа, решающая эту задачу:

program Max_of_two_numbers;

var a, b : integer;

write (’Введите два числа: ’);

readln (a, b);

if a > b

then writeln (’Max: ’, a)

else writeln (’Max: ’, b)

end.

5.2. Укороченный вариант условного оператора

Довольно часто в случае ложности условия не нужно производить никаких действий. В таких случаях строчку else с оператором можно просто опускать. Тогда получится укороченный вариант условного оператора:

if<условие>

Then <оператор1>

Например:

iftemperatura > 30

Then writeln (’Не правда ли, жарко?!’)

При выполнении этого условного оператора компьютер напечатает указанную фразу, если условие temperatura > 30 верно. В противном случае ничего сделано не будет.

5.3. Составной оператор

По правилам записи условного оператора после Thenможет быть только один оператор. А что делать если в случае истинности условия нужно выполнить два, три или больше операторов? Не повторять же каждый раз условное предложение с одним и тем же условием! Это не удобно, да и не всегда возможно. Для этих целей нужно использовать составной оператор. Вот как он оформляется:

<оператор1> ;

<оператор2> ;

...

<операторN>

Это – один оператор, внутри которого содержится несколько. Они выполняются последовательно, как обычная последовательность операторов. Перед словом end точку с запятой обычно не ставят, потому что точка с запятой служит для разделения операторов друг от друга, а служебное слово end оператором не является, оно просто замыкает последовательность операторов. Но если поставите точку с запятой – ошибки не будет, так как компьютер подумает, что после <оператораN> есть еще один пустой оператор.

Пример использования составного оператора:

ifnashi > vashi

Writeln (’Победа за нами! Ура!!!’);

nashi := 0; { Обнуление результатов }

vashi := 0

end;

5.4. Составные условия

Условие может быть составным, то есть состоять из нескольких других условий. Эти условия необходимо связывать при помощи логических операций and, or, not и xor.

Операция and

Логическую операцию and (и) используют, если нужно, чтобы одновременно выполнялись два условия. Например, условие

“Книга интересная И книга красивая”

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

(<условие1>) and (<условие2>)

На практике эта логическая операция часто применяется для создания условия, что некоторая переменная принадлежит указанному промежутку. Например, составим условие, которое будет истинно тогда и только тогда, когда переменная х принадлежит промежутку от 10 до 20: 10 < x < 20. Это произойдёт только в том случае, когда х будет больше 10 именьше 20. На языке Паскаль это записывается так:

(x > 10) and (x < 20)

Проверка. Возьмём вместо х число 0. Первая часть условия ложна, вторая часть верна, значит всё условие ложно (0 в самом деле не принадлежит промежутку от 10 до 20). Самостоятельно проверьте это условие для следующих значений переменной х: 25, 11, 20, 10, 19.

Операция or

Логическую операцию or(или) используют, когда хотят сформулировать условие, которое будет истинно в том случае, когда верно хотя бы одно условие из двух. Например, условие

“Идёт снег ИЛИ светит солнце”

будет истинно, если либо идёт снег, либо светит солнце, либо выполняется и то, и другое. В Паскале эта операция используется так:

(<условие1>) or (<условие2>)

 

Операция not

Логическую операцию not(не – логическое отрицание) используют, если нужно проверить условие на ложность. Эта операция делает ложным истинное условие и истинным ложное. Вот как это записывается:

not (<условие>)

 

Операция xor

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

(<условие1>) xor (<условие2>)

 

Все комбинации аргументов и результатов этих логических операций расписаны в таблице. Значения логических величин обозначены логическими константами False (ложно), и True (истинно).

Таблица4. Логические операции

A B not A A and B A or B A xor B
False False True False False False
False True True False True True
True False False False True True
True True False True True False

 

A и B в свою очередь тоже могут быть составными условиями.

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

(5 > 3) and not ((3 <> 3) or (7 > 9)) =

= True and not (False or False) =

= True and not False =

= True and True =

= True

5.5. “Защита от дурака”

Одним из способов применения условий является проверка исходных данных. Это так называемая “защита от дурака”, которую желательно использовать в своих программах, чтобы предотвратить обработку заведомо неверных данных, а следовательно избежать глупых ошибок, потому что неверные данные никогда не влекут за собой верные результаты! Сообщение об ошибке должно быть лояльным, не оскорбляющим достоинство пользователя. Не нужно писать фразы, вроде: "Болван! Ты в своём уме? Условие прочти!!!". Такие фразы прикольно читать только впервый раз, потом это будет раздражать каждый раз, как случайно нажмёшь не ту клавишу.

Пример использования "защиты от дурака":

Write (’Введите трёхзначное число: ’);

Readln (a);

if (a < 100) or (a >= 1000)



<== предыдущая лекция | следующая лекция ==>
Клавиши перемещения курсора | Начало цикла


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.853 сек.