Главная » Просмотр файлов » Основы программирования

Основы программирования (947332), страница 8

Файл №947332 Основы программирования (Иванова Г.С. Основы программирования) 8 страницаОсновы программирования (947332) страница 82013-09-15СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 8)

{nl получит значение 15}41Часть 1. Основы алгоритмизации и процедурное программированиеб) Var c:char; x,y:integer:Begin x:=3;y:= Ord(*A*);{y получит значение 65 - код символа Апо таблице ASCII}с. = Chr(Ord('A*)-^x); ... {с получит значение 'D'}Кроме того, для явного преобразования типов можно использоватьфункции, имена которых соответствуют идентификаторам стандартных илиопределенных пользователем типов. Этот вид преобразования иногда назы­вают автоопределеиным, например:Var h'.char;... h:=Char(65); ...

{h получит значение 'А'}Следует отметить, что при данном виде преобразования изменения зна­чения не происходит, выполняется просто изменение типа, связанного с дан­ным значением. В результате может произойти усечение или увеличение раз­мера значения по сравнению с исходным. В случае усечения значения (при­ведение к меньшему по размеру типу) возможно изменение знака преобразу­емого числа.

В случае же расширения значения (приведение к большему поразмерам типу) знак числа всегда сохраняется.Например:Туре Month=(Jan,FabMcir,ApKMayJun,JulAug,Sep, Oct,Nov,Dec);Var M:Month;A,B:mteger;C'char;L:longint;BeginA:=10;C-'E';B:==Integer(C); {число 69 - код символа E - длиной 2 байта}М: =Month(A'2); {значение Sep}L:=Longint(M);.... {значение 8}2.6.

Процедуры ввода-выводаВвод значений. Для ввода значений с клавиатуры используют специаль­ные процедуры Read и ReadLn (рис. 2.10). Эти процедуры позволяют вводитьзначения стандартных типов, кроме boolean, и строки (string).Вводимые значения (кроме значений символов и строк) разделяют про­белами или записывают на разных строках.

Отдельные символы и строкисимволов при вводе записывают подряд, так как пробел в этом случае такжесчитается символом.422. Простейшие конструкции языкаrURead V iИдентификаторпеременнойL^/ReadLnVIОРис. 2.10. Синтаксическая диаграмма<Процедуры ввода с клавиатуры>Физически операции ввода выполняются с использованием буферОуТ, е.вводимая с клавиатуры последовательность символов сначала помещается впамять, а затем, уже из памяти, читается программой.

Последовательностьпередается в буфер ввода по нажатию клавиши Enter. При этом в буфер вме­сте с кодами введенных символов помещается и код Enter, состоящий из двухсимволов «#13, #10».Если ввод осуществляется процедурой ReadLn, то буфер ввода послевыполнения операции очищается, причем символы, оставшиеся не обрабо­танными, игнорируются. Если ввод осуществляется процедурой Read, тоочистка не выполняется и, следовательно, следующий оператор ввода начнетчитать символы из той же строки.

Последнее cyщectвeннo только, если вво­дятся значения типа char (или string, см. параграф 4.5), так как при вводе чи­сел пробелы и переход на следующую строку игнорируются.Например:а)Var a,b,c:real;BeginRead(a,b);п:integer;{числа могут быть введены в одной строке или вразных}ReadLn(c,n);,,.

{числа могут быть введены в той же строке, что ипредыдущие числа}б) Var a:real; c:char;Begin ...Read(a); ...Write ('Продолжить? (y/n)*);Read(c); {приводит к тому, что после запроса компьютер непереходит в ожидание ввода, как мы предполагали, а вводитследующий символ из буфера ввода, т.е. символ #13 (рис. 2.11)}Чтобы избежать «игнорирования ввода», необходимо для выполненияпредыдущей операции ввода использовать вместо процедуры Read процеду­ру ReadLn:43Часть L Основы алгоритмизации и процедурное программированиеМестоположениеуказателя ввода передчтением символаЧисло ал/г85#13 #10Рис. 2.11.

Ситуация «игнорирования» вводаVar a:real; c:char;Begin...ReadLn(a);... {очистим буфер ввода после выполнения операции}Write('Продолэюитъ? (у/п) *);Read(c); {в данном случае все в порядке: после вывода запросапрограмма ожидает ввода символа}Вывод значений. Для вывода значений на экран используют процедурыWrite и WriteLn (рис.

2.12). Эти процедуры предназначены для вывода значе­ний стандартных типов и строк.Целочисленный литерал <Целое 1> интерпретируется как ширина поля,в которое выводится значение, причем выводимые значения прижимаются кправой границе. Если указанной ширины поля недостаточно, то она автома­тически увеличивается до нужного значения.

Если <Целое 1> не указано, тоего значение определяется количеством выводимых символов.Целочисленный литерал <Целое 2> указывается только для веществен­ных чисел: он определяет количество цифр дробной части числа. Если <Целое 2> указано равным О, то ни дробная часть числа, ни десятичная точка невыводятся.

Если <Целое1> и <Целое 2> не указаны, то веш[ественные числавыводятся в виде мантиссы и порядка, причем ширина поля вывода по умол­чанию принимается равной 23, а количество дробных цифр - 14.Логические значения выводятся как TRUE или FALSE.Символы и строки выводятся без изменения, но дополняются пробела­ми, если ширина поля вывода больше, чем необходимо.г*^ Write \h0^Г0-ВыражениеU/writeLn\jЧ1ЯЦелое1<1ЯЦелое2 ИРис.

2.12. Синтаксическая диаграмма <Процедуры вывода на экран>442. Простейшие конструкции языкаПосле вывода значений процедурой WriteLn курсор переводится на сле­дующую строку.Пример 2.1. Разработать программу вычисления корней уравненияАх2-1-Вх+С=0 при условии, что дискриминант - неотрицательное число.Формула корней уравнения известна:-b±Vdх,2 ='2агде d = Ь^ - 4ас.Алгоритм программы выглядит следующим образом:Корни уравнения:Ввести а, Ь, сd := b^ - 4асе := Ь / (2а)X, := - е + V d / (2а)Х2 := - е - V^d / (2а)Вывести Х|, Х2Конец алгоритма.Ниже приведен текст программы.Program ex;Var a,bx,xl,x2,e,d:real; {описываем переменные}BeginWriteLnCВведите коэффициенты уравнения: ');ReadLn(a,b,c);{вводим параметры}d:=b*b'4*a*c; {определяем дискриминант}е:=Ь/(2*а);{определяем значение вспомогательной переменной}xl:=-e^sqrt(d)/(2'^a):{определяем xj}x2:^'e'Sqrt(d)/(2^a);{определяем Х2}WriteLn('xl= \х1:6:2, *х2= \х2:б:2); {выводим результаты}End2.7.

Практикум. Оценка точности результатовПри программировании вычислений необходимо помнить о том, что вомногих случаях результат этих вычислений является числом приблиэюенным.Пусть «А» - точное значение числа, а «а» - его приближенное представ­ление, тогда ошибкой или абсолютной погрешностью приближенного пред­ставления числа А называют значениеЛ = |А - а|.45Часть 1. Основы алгоритмизации и процедурное программированиеОбычно при оценке точности полученных результатов точное значениенеизвестно.

Поэтому для оценки погрешности используют ее приближение«сверху», т.е. максимально возможное значение погрешности, которое назы­вают предельным значением абсолютной погрешностиАа>А = | А - а | .Абсолютная погрешность не является единственной характеристикойошибки. Сравним два варианта результата с одинаковой погрешностью:100±1 и 1±1. Очевидно, что с точки зрения практики необходимо иметь ха­рактеристику, позволяющую при оценке ошибки учитывать само значение.Такой характеристикой является относительная погрешность.Относительной погрешностью называют отношение абсолютной по­грешности числа к его модулю (А;»^0):5 = А /А.С учетом того, что точное значение А обычно не известно, в качествепредельной относительной погрешности или «оценки сверху» относитель­ной погрешности можно использовать значение5, = Д , / ( а - Д , ) .Погрешность результата вычислений складывается из погрешностей:• допущенных при постановке задачи за счет ее упрощения (погрешно­сти задачи);• связанных с использованием приближенных методов решения задачи(погрешности метода);• связанных с использованием приближенных значений параметров, на­пример, любых физических констант (начальные погрешности);• связанных с ограниченным количеством разрядов, используемых дляпредставления чисел (погрешности округления);• возникающих при выполнении операций над приближенными числа­ми (погрешности операций).Примечание.

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

Выполнить оценку погрешности представления числа 1/3и вычислений над числами типа real.462. Простейшие конструкции языкаProgram ex;Var у,у1у2,уЗ,у4,у5,у6,р:геа1;Beginy-l;yl-y/3;WriteLnCyl = ',yl:16:14); {выводит yl=0.33333333333348}y2:=sqrt(yl};y3:=sqr(y2);у4:=уЗ/14;у5:=у4*]4;WriteLnCy6^ \у6:16:14):WriteLn(y = \y:16:14);End{выводит у6=1.00000000000182}{выводит у =1.06000000000000}Откуда погрешности представления числа 1/3 в формате real:А,/3 = |1/3 - у1| = I 0.33333333333333 - 0.333333333333481 = 0.15-10-'2,5,/з = 0.15 10-12/(1/3) = 0.45-10-10а погрешность выполнения операций над числами, представленными вформате типа real, в конкретном случае:Дуб = 1У - Уб1 = 11 - 1.00000000000182| = 0.182.1 о-1',5уб = Дуб 'у = 0.182.10-11/1= 0.182.10-11.Пример 2.3.

Из математики известно, что ch^ х - sh^ х = 1. Разработатьпрограмму, «проверяющую» это равенство.Наша программа должна вводить значение х и для него считатьу, = (ех +е-х)/2,У2 = (е>^-е-^)/2,У = У1^-У2^Полученные значения У], У2 и у выведем на экран.Program ex;Var X, у, yly y2:real;BeginWrite ('Введите значение x: *);ReadLn(x);yl: ='(exp(x)-^exp('X))/2;47Часть 1.

Характеристики

Тип файла
PDF-файл
Размер
13,06 Mb
Тип материала
Учебное заведение
Неизвестно

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6310
Авторов
на СтудИзбе
312
Средний доход
с одного платного файла
Обучение Подробнее