Помощь в написании студенческих работ
Антистрессовый сервис

Оператор ввода данных INPUT

РефератПомощь в написанииУзнать стоимостьмоей работы

Такой переход похож на безусловный, но обладает дополнительным свойством: управление не просто передается на строку Label, но и спускается все ниже до тех пор, пока не появится строка RETURN. После этого управление передается на строку, сразу следующую за той, на которой стоял GOSUB и даже на тот оператор, который стоит на той же строке, что и GOSUB, но сразу после (GOSUB:) — двоеточия! Вообще… Читать ещё >

Оператор ввода данных INPUT (реферат, курсовая, диплом, контрольная)

Input в переводе с английского означает «ввести». Оператор служит для ввода (в таком виде — с клавиатуры) данных по запросу программы. Формат его.

INPUT ["Tekst"] [,][;] variable.

где Tekst между кавычками это тот же объект, что использовался в операторе PRINT. Однако оператор PRINT может печатать тексты несколько раз, а у INPUTа такая возможность одна и она всегда завершается именем переменной, к которой будет приписано введенное число или символьная строка. Потому текст просто обязан прокомментировать, что же вы просите ввести. Vartiable, как мы уже видели, это переменная.

Примеры:

input «vvedi argument x»; x.

или.

input «vvedi familiyu x»; x$.

В первом случае будет запрошено число, во втором — символьная величина.

Еще один пример:

input «vvedi svoyo imya «; x$.

print «Privet,»;x$;"!".

Операторы перехода GOTO и IF … THEN

Оператор GOTO происходит, очевидно, от «go to» (идти к). Формат его предъявления таков:

GOTO Label.

где Label означает метку той строки, на которую осуществляется переход. Метка может быть просто натуральным числом или символьным выражением, завершенным двоеточием, например, «nachalo:», «faktorial:» или «korni:».

Управление выполнением программы по этому оператору (или, говорят, по предъявлению этого оператора, т. е. когда оператор появится в начале строки или, после двоеточия, даже в середине ее или конце) безусловно переходит на строку помеченную меткой. Таким образом, если оператор перехода посылает на метку строки выше себя, и между такой меткой и им самим нет ничего, что может помешать управлению снова добраться до этого GOTO, то мы будем иметь классический пример зацикливания.

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

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

Слово IF переводится как «если», а THEN — как «то» или «тогда». Краткий формат оператора:

IF condition THEN action.

где condition означает условие, например, raznost=1, i=2 и т. д., а action — действие (например, переход на строку с определенной меткой, или печать, или что-то еще).

Более полный формат этого оператора предусматривает множественность и условий и действий:

IF condition1 THEN.

[statementblock-1].

[ELSEIF condition2 THEN.

[statementblock-2]].

… … … …

[ELSE.

statementblock-n]].

END IF.

Или.

IF condition THEN statements [ELSE statements].

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

statementblock-1.

statementblock-2.

statementblock-n.

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

Пример:

INPUT «1 or 2? «, i%.

IF i% = 1 OR i% = 2 THEN.

PRINT «OK» .

ELSE.

PRINT «Out of range» .

END IF.

Эта программка просит ввести 1 или 2. Если вы слушаетесь и вводите 1 или 2, она печатает «ОК», в противном случае сообщает вам «Вне пределов».

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

20 CLS ` polet samoleta.

print «polet samoleta».

30 input «vvedi rasstoyaniye «;s.

if s>10 000 then print «a viza est'?»: goto 30.

if s<30 then print «peshkom doidesh'!»: goto 30.

40 input «vvedi skorost' «;v.

if v>1200 then print «Gde brali MiG-24?»: goto 40.

if v<70 then print «voz'mite velosiped»: goto 40.

t=s/v.

min=(t-int (t))*60.

sec=(min-int (min))*60.

print «vremya v puti».

print int (t);"chasov", int (min);"minut"; sec; «sekund».

input «Eshcho poletaem? Da — vvedi odin. Netdrugoye chislo», ask.

if ask = 1 then goto 20.

cls.

print.

print.

print.

print «Schastlivogo puti!».

end.

Написав и отладив программу, вы освоите азы использования оператора IF… THEN.

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

nachalo: CLS `programma dlya resheniya kv. ur-ya.

print «Reshaem kvadrantoya uravneniye».

print «2».

print «ax + bx + c = 0».

input «vvedi a=»;a.

input «vvedi b=»;b.

input «vvedi c=»;c.

dskr=b2−4*a*c.

ch1=-b/(2*a):ch2=(sqr (abs (dskr))/(2*a).

if dskr>0 then gosub real.

if dskr=0 then gosub odin.

if dskr<0 then gosub compl.

input «eshcho reshem? DA=1. Net=2»; vybor.

if vybor=1 then goto nachalo.

cls.

print «spasibo za ispolzovaniye porgammy».

end.

real: print «Imeem 2 veshch. kornya,.

print «x1=»;ch1-ch2,"x2=";ch1+ch2.

return.

odin: print «Imeem 1 veshch. koren',.

print «x1=x2=»;ch1.

return.

compl: print «Imeem 2 compleksnykh kornya,.

print «x1=»;ch1;"-i*";ch2,"x2=";ch1;"+i*";ch2.

Внимательный читатель увидит здесь два новых оператора — GOSUB вместо GOTO и tot какой-то оператор RETURN. Оператор GOSUB Label не просто отсылает управление на строку с меткой Label, но и ждет затем появления своей второй половины — строки RETURN (от английского «вернуться»).

Такой переход похож на безусловный, но обладает дополнительным свойством: управление не просто передается на строку Label:, но и спускается все ниже до тех пор, пока не появится строка RETURN. После этого управление передается на строку, сразу следующую за той, на которой стоял GOSUB и даже на тот оператор, который стоит на той же строке, что и GOSUB, но сразу после (GOSUB:) — двоеточия! Вообще говоря, GOSUB происходит от GO to SUBroutine (routine = программа, subroutine = подпрограмма).

На возможный вопрос «А чего это мы END в середине программы поставили?» ответ будет таким. Оператор GOSUB… RETURN, вообще говоря, является оператором перехода на подпрограмму (т.е. относительно самостоятельный блок программы). Для того, чтобы выполнение и адресация на подпрограммы была разумной, следует выносить их НИЖЕ ОСНОВНОГО БЛОКА программы. Они (подпрограммы) становятся такими самостоятельными программками, у которых «голова» находится в теле большой программы, а «концом» является как раз оператор RETURN, который, фактически, завершает выполнение подпрограммы и возвращает управление на то место, с которого его передали вниз GOSUBом. Ниже мы приведем пример более слабого решения, в котором GOSUB не используется.

nachalo: CLS `resheniye kv. ur-ya.

print «Reshaem kv. ur-e.

print «2».

print «ax + bx + c = 0».

input «vvedi a=»;a.

input «vvedi b=»;b.

input «vvedi c=»;c.

dskr=b2−4*a*c.

ch1=-b/(2*a):ch2=(sqr (abs (dskr))/(2*a)).

if dskr>0 then.

print «2 veshch. kornya».

print «x1=»;ch1-ch2,"x2=";ch1+ch2.

elseif dskr=0 then.

print «Imeem 1 veshch. koren',.

print «x1=x2=»;ch1.

elseif dskr<0 then.

print «Imeem 2 compleksnykh kornya,.

print «x1=»;ch1;"i*";ch2,"x2=";ch1;"+i*";ch2.

input «eshcho reshem? DA=1. Net=2»; vybor.

if vybor=1 then goto nachalo.

cls.

print «spasibo za ispolzovaniye porgammy».

end.

Ура, мы поместили подпрограммы внутри программы! Увы, это лишь потому, что подпрограммы очень простенькие… Что выбирать? Ответ такой же, как и со знанием иностранных языков — нужно знать и то, и другое!

Показать весь текст
Заполнить форму текущей работой