Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Уроки программирования на Turbo Pascal


Информационный Канал Subscribe.Ru


Уроки программирования на Turbo Pascal #4

Подписчиков на 2002-07-25 - 575 человек(а).

Рассылка проекта "Олимпиада.com.ru".


Главная Архив задач Конкурс Рассылки Форум Гостевая книга Контакты

Здравствуйте, уважаемые подписчики!


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


Урок 4


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

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

 
READ (список переменных), где список переменных - последовательность имен переменных, разделенных запятыми.

  Например,
READ (X,Y,Z); READ (BETA);

  Оператор READ останавливает работу программы и ждет, пока пользователь наберет на клавиатуре число и нажмет <Enter>. Введенное число помещается в оперативную память, в отведенную ячейку, имеющую имя указанное в операторе. Если список ввода содержит несколько имен, то для каждого надо ввести свое значение. Вводимые числа разделяют пробелами или нажатием клавиши <Enter>.
Заканчивается ввод всегда клавишей <Enter>. После работы этого оператора курсор располагается за последним введенным символом, но не переводится на новую строку. Для перевода курсора на новую строку экрана дисплея после ввода данных, используется оператор

 
READLN (список переменных).

  Оператор READLN отличается от READ еще и тем, что, введя необходимое количество данных, пропускает все остальные, набранные до нажатия клавиши <Enter>.

4.2. Вывод.
  Для вывода результатов работы программы служит оператор

 
WRITE(список вывода).

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

  Например, если Х=3.14159, а Y=2.71468, то оператор WRITE(X:6:2,Y:8:3) высветит на экране ..3.14....2.715.

  Чтобы прокомментировать выводимые значения, в список вывода можно помещать строки любых символов, заключенные в апострофы (одинарные кавычки). Например,

  WRITE('Ответ:', Х:4,'км/сек.').


  Эти строки появятся на экране без кавычек. Так при Х=3.5 этот оператор выведет:


  Ответ: 3.5 км/сек.


  Перевод курсора на новую строку осуществляется оператором пустого вывода WRITELN;
Если надо перевести курсор после вывода, то применяется оператор


 
WRITELN(список вывода).

  После вывода результатов работы программы на экран система так быстро возвращается в редактор текстов программы, что пользователь не успевает увидеть эти результаты. Чтобы задержать изображение, в конце программы следует ставить оператор пустого ввода READLN;

Пример программы.
  Пусть требуется найти сумму, произведение и разность двух данных чисел. Для каждого из чисел надо придумать имя переменной и указать ее тип. Затем ввести эти числа в отведенные ячейки и, используя возможности оператора вывода напечатать результаты.
  При решении задач имена присваиваются не только исходным данным, но и результатам, а также получаемым промежуточным значениям. Поскольку в рассматриваемом примере надо получить три результата, введем для них переменные X,Y,Z. В программе этим переменным будут присвоены значения суммы, произведения и разности двух вводимых чисел.

Program prim_4;
Var a,b,x,y,z:real;
Begin
    Write('введите два числа через пробел, затем нажмите <Enter>');
    Readln(a,b);
    X:=a+b;
    Y:=a*b;
    Z:=a-b;
    Writeln('a+b=',x);
    Writeln('a*b=',y);
    Writeln('a-b=',z);
    Readln
End.


Задания


1)Напишите программу, которая запрашивает два числа, находит остаток от деления первого на второе и выводит результат.
2)Составьте программу нахождения периметра квадрата, если задана его площадь.
3)Даны два числа. Найти их среднее арифметическое.
4)Найти площадь кольца по заданным внешнему и внутреннему радиусам.
5)Даны катеты прямоугольного треугольника. Найти его периметр.
6)*Поменять местами значения переменных X и Y, не используя дополнительной переменной.

Правильные ответы для тех, кто выполнил задания предыдущего урока.

1. Запись выражений на Паскале:
a. (A+B)/C+SQR(C)/(A-B)
b. (X+Y)/3*7/(X-Y)
c. (A-B)/C/((A+B)/D)
d. (3+(1/2))+C/SQR(A+B)
e. A*B/C-D/(A*B)
f. SQR(X)/Y+SQR(Y)/X

2. Найдите значения переменных, если это возможно. Учтите, что число 7.0 является вещественным, т.к. оно имеет дробную часть, хотя и равную нулю. Операции MOD и DIV можно выполнять только над целыми числами (Урок 2):

a)    A:=21 DIV 5=4                              b)     A:= 2 MOD 3=2            
      B:= 20 MOD 5=0                                    B:= 36.0 MOD 6(нельзя делить веществ)
      C:= 14 DIV 6.0 (нельзя делить веществ)           C:= 81 DIV 0 (деление на 0)
      D:= 14 MOD 0 (деление на 0)                        D:= 38 DIV 6=6
      E:= 5 MOD 13=5                                    E:= 3 DIV 2=1

3. Найдите значения переменных, если это возможно:
a)    A:=SQR(100)=10000        b) A:=sqrt(9)=3.0
      B:=sqrt(100)=10.0           B:=SQR(9)=81
      C:=SQR(-10)=100             C:=SQRT(-9) (выр. < 0)
      D:=SQRT(-10)(выр <0)        D:=SQR(-9)=81
      E:=SQR(0.9)=0.81            E:=SQRT(0.0)=0.0
      F:=SQRT(0)=0.0              F:=SQR(0.1)=0.01


4. Найдите значения переменных, если это возможно:
a)    A:=ROUND(6.9)=7         b)   A:=ROUND(15.39)=15
      B:=ROUND(6.48)=6            B:=ROUND(15.8)=16
      C:=TRUNC(9.5)=9             C:=TRUNC(-39)=-39
      D:=FRAC(9.5)=0.5            D:=FRAC(39)=0.0
      E:=INT(9.5)=9.0             E:=INT(39)=0.0
      F:=TRUNC(-17)=-17           F:=TRUNC(5.6)=5
      G:=FRAC(17)=0.0             G:=FRAC(-0.3)=-0.3
      H:=INT(-17)=-17.0           H:=INT(1.25)=1.0


5. Запишите по правилам языка программирования следующие выражения:
a. sqrt(sqr(x1)+sqr(x2))
b. 1/(1+1/(2+1/(2+3/5)))
c. -b+sqrt(sqr(b)-4*a*c)/(2*a)
d. sqrt(1-sqr(sin(x)))
e. (-b+1/a)/(2/c)
f. (sqrt(x+1)+sqrt(x-1))/(2*sqrt(x))
g. m*g*cos(sqr(a))
h. 1/(1+(a+b)/2)
i. (a*b+b*c)/(a*b)

Желаю успехов!
Ганилова Татьяна Евгеньевна school6@rikt.ru


Реклама в рассылке:

RLE    

  


Подпишитесь на наши рассылки:

Новости проекта "Олимпиада.com.ru" [Алексей Шамис]
Новости проекта "Olimpiada.com.ru". Новые темы на форуме. Информация о пополнениях в архиве задач. Оперативно и своевременно!

Уроки программирования на Turbo Pascal [Ганилова Татьяна]
Хотите стать Великим Программистом? Начните свой путь к вершине славы с изучения языка Turbo Pascal. Он как нельзя лучше подходит для начинающих программистов и в то же время используется для разработки сложных "профессиональных" программ.

Олимпиадные задачи с решениями на Turbo Pascal [Шамис Алексей]
В рассылке публикуются решения интересных олимпиадных задач различного уровня. Содержит много теоретической информации. Периодичность - 2-3 раза в неделю.

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



Всегда рады видеть Вас на нашем сайте. Жду ваших предложений и замечаний, Алексей Шамис

Copyright © 2002 by Ganilova Tatyana.



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное