КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Write(v,t,S)
Курсор у нас уже стоит на второй строке в первой позиции. Начиная с этой позиции слева направо и будут выведены результаты. ЭКРАН
Курсор останется в той же строке, т.к. для вывода используется оператор write. Во второй строке числа представлены в формате с плавающей запятой (формат Е). Количество символов в записи числа зависит от настроек PASCALя. Чаще всего, если формат для вывода вещественных чисел не указан, то для записи числа отводится 17 позиций: VVVVVVVVVVVVVVVVV #
Следовательно, число V1.71ØØØØØØØØЕ+Ø2 следует читать так: 1,71•102. Как видите, результаты на последнем экране ввода/вывода отделены друг от друга только одним пробелом. Да и то он будет присутствовать не всегда, а только тогда, когда выводимые данные положительны. Этот пробел ЭВМ оставляет для знака числа. Если бы выводимые числа были отрицательными (хотя в нашей задаче v и t не могут быть отрицательными), то и этого пробела не было бы, а вывод был бы, например, таким: 8.55ØØØØØØØØE+Ø1-2.ØØØØØØØØØØE+ØØ-1.71ØØØØØØØØE+Ø2_ Устраивают нас результаты в таком виде? Наверное, нет. Не очень удобно их читать. В последнем примере вывода на экран может вообще из первого числа надо вычесть второе, а потом третье? Где границы записи чисел? Также не понятно, что из выведенных результатов v, что t, а что S. Да и вывод результатов в формате Е в данном случае не очень удобен. Наверное, было бы лучше, если бы результаты имели следующий вид: v=85.5VVVVt=2.ØVVVVVVVS=171.Ø Какую же процедуру вывода необходимо для этого написать? Не будем переписывать всю программу, а только запишем нужный нам оператор: write('v=',v:4:1,'VVVVt=',t:3:1,'VVVVVVVS=',S:5:1) для записи числа всего отводится четыре позиции. Одна из них – для записи дробной части Возможна и другая запись этой процедуры вывода. Вместо того, чтобы писать четыре пробела перед t= и семь пробелов перед S= (а если их будет еще больше?), можно использовать форматы для вывода этой информации. Тогда наша процедура вывода будет иметь следующий вид: write('v=',v:4:1,'t=':6,t:3:1,'S=':9,S:5:1) Что же обозначают эти форматы? Разберем первый из них: 't=':6 Перед выводом t= будет выведено значение скорости v. В нашем примере мы взяли значение скорости, равное 85,5. В этом числе последний символ - цифра 5. После этой пятерки в следующих шести позициях должно быть выведено t= (для записи t= отводится 6 позиций). Получается, что в пятой и шестой позициях (относительно пятерки) и будет выведено t=, а перед буквой t будет 4 пробела, т.е. последний символ предложенной записи, к которой относится указанный формат - в нашем случае это знак равенства - будет в шестой позиции относительно последнего символа в записи значения скорости (относительно последней пятерки). Другими словами, если Вы хотите поставить несколько пробелов перед выводом какой-либо информации (в данном случае четыре пробела перед выводом t=), подсчитайте количество символов в выводимой записи (у нас два символа - t=) и прибавьте к ним то количество пробелов, которое Вы хотите поставить перед этим выводом (всего у нас получается 6). Итак, экран ввода-вывода будет иметь вид: ЭКРАН
После вывода информации курсор останется в той же строке. Если мы захотим запустить нашу программу на выполнение еще раз и найти результаты при других исходных данных, то второй раз исходные данные будут вводиться в том месте экрана, где у нас расположен курсор, т.е. рядом со значением S, рядом с нулем, (если мы не нажмем на клавишу <Enter>). Если же следующая информация будет выводиться, то <Enter> нам не поможет, эта информация будет выведена рядом со значением S. Поэтому лучше будет, если после вывода информации курсор окажется в начале следующей строки. Это осуществляется путем добавления к имени процедуры write двух букв LN (от слова line - строка), которые говорят о том, что после вывода информации курсор окажется в начале следующей строки. Итак, наша процедура вывода приобретает вид: write LN ('v=',v:4:1,'t=':6,t:3:1,'S=':9,S:5:1) это перевод курсора на следующую строку Так.как после вывода информации курсор перейдет в первую позицию следующей строки, то экран ввода/вывода приобретет следующий вид: ЭКРАН
И еще одно. Исходные данные и строку результатов можно было бы разделить, записав их, например, через строку. Этого можно достичь путем добавления перед нашей процедурой вывода еще одного оператора: WRITELN; Т.к. список вывода отсутствует, то после выполнения этого оператора курсор просто окажется на новой строке (потому что в процедуре вывода присутствует LN). Итак, процедуры вывода будут иметь вид: writeln; writeLN('v=',v:4:1,'t=':6,t:3:1,'S=':9,S:5:1) а экран ввода/вывода приобретет вид: ЭКРАН
Если Вам надо пропустить несколько строк между вводом и выводом, то нужно написать несколько операторов writeln. Итак, если в процедурах вывода присутствует LN, то следующий ввод или вывод будет осуществляться на новой строке, если же нет, - то на той же. Уже экран ввода/вывода у нас имеет более понятный вид, но все равно не ясно, что вводить, когда и в каком порядке. Когда при выполнении программы встречается процедура ввода, то, как мы уже говорили, выполнение программы приостанавливается и ЭВМ ждет ввода исходных данных. А если процедура ввода еще и в середине текста программы находится? Мы будем гадать, чего же компьютер от нас хочет, может зациклилась программа? Поэтому, наверное, было бы лучше, если бы ЭВМ сообщила нам о том, что она ожидает ввод данных, причем, каких данных и в каком порядке их вводить. Для этого мы сами должны написать приглашение к вводу. Т.е. мы хотим, чтобы на экране перед вводом данных появилось следующее приглашение: Введите v,t А с новой строки мы уже будем вводить исходные данные. Раз такое приглашение мы хотим вывести на экран, то воспользуемся для этого процедурой вывода: write ln ('Введите v,t'); Для тог, чтобы исходные данные вводились с новой строки, т.е. чтобы после вывода этого сообщения курсор оказался в первой позиции следующей строки. Поставим этот оператор перед оператором read(v,t). Теперь будет понятно, когда вводить, что вводить и в каком порядке. Запишем окончательный текст программы и экран ввода/вывода. { Программа вычисления пройденного пути по формуле S=V*T } Var S,v,t:real; { Выполняемая часть программы } Begin Writeln('Введите v,t'); Read(v,t); S:=v*t; { Вывод результатов } Writeln; Writeln('v=',v:4:1,'t=':6,t:3:1,'S=':9,S:5:1) End. ЭКРАН
Структурную схему составленной программы см. на рис. 21.
Этот блок соответствует процедуре вывода приглашения к вводу.
Эта схема является структурной схемой программы, т.к. каждому блоку соответствует оператор программы, а каждому оператору - блок (в схему мы включили почти весь сервис; процедуру Writeln (без параметров) можно в схемах не отображать).
Рис. 21 Структурная схема программы ЗАДАНИЯ №6. Составьте программы для вычисления значения следующих величин. На О.О.Ф. (область определения функции) функции не исследуйте, считайте, что все величины удовлетворяют О.О.Ф. В программах предусмотрите приглашение к вводу, комментарии, вывод результатов вместе с исходными данными в понятной форме с использованием форматов. Напишите структурные схемы программ и изобразите экран ввода-вывода.
№7. Дано: целочисленные a и b. Изменить значение переменных a и b, присвоив переменной b значение переменной a, а переменной a - значение b. №8. Составить программу для вычисления приближенного значения функции для любого значения х. Результаты оформить в виде следующей таблицы: ВЫЧИСЛЕНИЕ ЭКСПОНЕНЦИАЛЬНОЙ ФУНКЦИИ
Таблицу располагать с первой позиции экрана, заголовок – симметрично таблице. №9. Изобразите информацию, которая появится на экране при выполнении следующей программы (исходные данные: х=5,3; y=2): Var S,x,y:real; Begin Write('Введем y:'); Read(y); Writeln; Writeln('Введем x'); Read(x); S:=x-y; Writeln; Write(S); Writeln; Writeln(' при х=',y:6;2,'и y=':6,x:7:1); Write('величина S=',S:5:2) End. №10. Изобразите информацию, которая появится на экране при выполнении следующего фрагмента программы: Read(Z,c); k:=Z+c; m:=Z*Z; Writeln('Исх. данные:',Z,c:5,'результаты:':15,'k=':4,k,'m=':5,m); если все величины относятся к типу real. Исходные данные: c=8,5; Z=2. 3. ИСПОЛЬЗОВАНИЕ ПЕРЕМЕННЫХ ЛОГИЧЕСКОГО ТИПА. ЛОГИЧЕСКИЙ ОПЕРАТОР ПРИСВАИВАНИЯ Логический, или булевский, тип обозначается в языке PASCAL стандартным именем BOOLEAN Данные логического типа могут принимать всего два значения, определяемые стандартными идентификаторами TRUE (истина) и FALSE (ложь). В языке PASCAL определены три следующие логические операции (операции указаны в порядке убывания их старшинства): not - отрицание (НЕ); and – логическое умножение (И); or – логическое солжение (ИЛИ). Эти операции применимы только к логическим аргументам и дают результат того же (логического) типа. Логическое значение дает и любая операция отношения:
Например, a<b на языке PASCAL будет выглядеть так: а<=b При a=3; b=5 это выражение будет принимать значение «истина» - TRUE. А при a=3; b=-5 – «ложь» - FALSE. Выше была приведена следующая стандартная функция, дающая результат логического типа: odd(x), где x - целое. В результате получается значение TRUE, если аргумент х - нечетный; FALSE - в противном случае. Приведем пример использования этой функции: var x: integer; f: boolean; begin x:=5; f:=odd(x); ……............ Þ f=true
Дата добавления: 2014-12-27; Просмотров: 476; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |