Информатика. 2
Федеральное агентство по образованию Российской Федерации
ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ
ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Радиотехнический факультет
Кафедра
конструирования и производства
радиоаппаратуры
Курсовая
работа
По дисциплине: «Информатика»
Вариант
№22
Выполнил студент
РК-082
Руководитель
Защищена ___________________ Оценка ___________________________
Воронеж
2009
Воронежский
государственный технический
Кафедра
конструирования и производства
радиоаппаратуры
ЗАДАНИЕ
на курсовую работу
По дисциплине:
«Информатика»
Студент
группы
РК-082
Вариант №22
а)
б)
в)
г)
Задана
действительная матрица размера
n*m. Построить матрицу той же размерности,
если каждый элемент новой матрицы равен
сумме элементов в не заштрихованной области.
Варианты a), б), в), г)
Сроки выполнения этапов системный анализ и проектирование алгоритмов
с 1.03.2009 по 3.03.2009, структурное проектирование с 3.03.2009
по 4.03.2009, разработка программного комплекса с 8.03.2009 по 17.03.2009,
отладка и испытание с 17.03.2009 по 20.03.2009, оформление с 28.04.2009
по 12.05.2009
Срок защиты
курсовой работы 26.05.2009____________________
Руководитель
Задание принял
студент
Замечания руководителя
Содержание
Задание на курсовую работу…………………………………………………2
Замечания руководителя………………………………………………
Введение…...………………….…………………………
1. Теоретическая часть…………….………………………………………….6
1.1 Стандартные типы данных……….……………………………….……6
1.2 Массивы в языке программирования Pascal…….…………………….9
1.3 Процедуры
и функции…………………………………………….…....
1.4 Графические возможности языка программирования Pascal………..13
2. Экспериментальная часть………………………………………………….15
2.1 Постановка
задачи……………………………………………….……..
2.2 Алгоритм решения задачи……………………………………….….....15
2.3 Описание
диалога с пользователем……………………………….…..
2.4 Контрольный пример……………………………………………….….26
Заключение……………………………………………………
Список литературы…………………………………
Приложение……………………………………………………
Введение
В
современной жизни программы
играют весьма важную роль. Они решают
самые различные задачи. В научно-исследовательских
институтах и вузах во многих случаях
программы создаются в
Программные
средства являются непосредственной производительной
силой, так как от них в ряде случаев зависят
эффективность промышленного производства
и качество продукции, создаваемой в технологическом
процессе с применением ЭВМ. Характеристики
программ влияют на экономические показатели
предприятий и отраслей, так как все больше
изменяют технологический и технический
уровни производств и средств автоматизации.
Они определяют технические возможности
роботов, обеспечивают решение разнообразных
функциональных задач обработки информации
и управления объектами. Их качество и
функциональные возможности интенсивно
воздействуют на качественное преобразование
промышленного производства и инженерного
труда. В то же время они наиболее гибкая
и модернизируемая часть систем, обеспечивающая
относительно легкую адаптацию к изменяющимся
условиям в процессе развития техники
и к особенностям конкретного применения.
1.
Теоретическая часть
1.1
Стандартные типы данных
К стандартным относятся целые, действительные, символьный и адресный типы.
Целые типы определяют константы, переменные и функции, значения
которых
реализуются множеством целых чисел,
допустимых в данной ЭВМ.
тип диапазон значений требуемая память
________________________
Shortint -128 .. 127 1 байт
Integer
-32768 .. 32767
2 байта
Longint -2147483648 .. 2147483647
4 байта
Byte
0 .. 255
1 байт
Word 0 .. 65535 2 байта
________________________
Над
целыми операндами можно выполнять
следующие арифметические операции:
сложение, вычитание, умножение, деление,
получение остатка от деления. Знаки этих
операций:
+ - *
div mod
Результат
арифметической операции над целыми операндами
есть величина целого типа. Результат
выполнения операции деления целых величин
есть целая часть частного. Результат
выполнения операции получения остатка
от деления - остаток от деления целых.
Например:
17 div 2 = 8, 3 div 5 = 0.
17 mod 2 = 1, 3 mod 5 = 3.
Операции отношения, примененные к целым операндам, дают результат логического типа TRUE или FALSE ( истина или ложь ). В языке ПАСКАЛЬ имеются следующие операции отношения: равенство(=), неравенство (<>), больше или равно (>=), меньше или равно (<=),больше (>), меньше (<) .
К
аргументам целого типа применимы следующие
стандартные (встроенные) функции, результат
выполнения которых имеет целый тип:
Abs(X), Sqr(X), Succ(X), Pred(X),
они определяют соответственно абсолютное значение Х, Х в квадрате, Х+1, Х-1.
Следующая
группа стандартных функций для аргумента
целого типа дает действительный результат:
Sin(X), Cos(X), ArcTan(X), Ln(X), Exp(X), Sqrt(X).
Эти функции вычисляют синус, косинус и арктангенс угла, заданного
в радианах, логарифм натуральный, экспоненту и корень квадратный соответственно.
Результат
выполнения функции проверки целой
величины на нечетность Odd(X) имеет значение
истина, если аргумент нечетный,
и значение ложь, если аргумент четный:
X=5 Odd(X)=TRUE , X=4
Odd(X)=FALSE.
Для быстрой
работы с целыми числами определены
процедуры:
Inc(X) X:=X+1
Inc(X,N) X:=X+N
Dec(X) X:=X-1
Dec(X,N) X:=X-N
Действительные
типы определяет те данные,
которые реализуются подмножеством действительных
чисел, допустимых в данной ЭВМ.
Тип Диапазон Количество цифр Требуемая
значений мантиссы память
________________________
Real 2.9e-39 .. 1.7e+38
11
6 байт
Single 1.5e-45 .. 3.4e+38
7
4 байт
Double 5.0e-324 .. 1.7e+308
15
8 байт
Extended 3.4e-4932 .. 1.1e+4932 19 10 байт
________________________
Тип Real определен в стандартном Pascal и математическим сопроцессором не поддерживается.
К
действительным аргументам применимы
функции, дающие действительный результат:
Abs(X), Sqr(X), Sin(X), Cos(X), ArcTan(X), Ln(X), Exp(X),
Sqrt(X),
Frac(X), Int(X), Pi.
Функция
Frac(X) возвращает дробную часть X, функция
Int(X) - целую часть X. К аргументам действительного
типа применимы также функции дающие целый
результат:
Trunc(X) и Round(X),
Первая из них выделяет целую часть действительного аргумента путем отсечения дробной части, вторая округляет аргумент до ближайшего целого.
Символьный тип (Char) определяет упорядоченную совокупность символов, допустимых в данной ЭВМ. Значение символьной переменной или константы - это один символ из допустимого набора. Символьная константа может записываться в тексте программы тремя способами:
-как
один символ, заключенный в апострофы,
например:
'A' 'a' 'Ю' 'ю';
-с помощью конструкции вида #K, где K - код соответствующего символа, при этом значение K должно находиться в пределах 0..255;
-с помощью конструкции вида ^C, где C - код соответствующего управляющего символа, при этом значение C должно быть на 64 больше кода управляющего символа.
К
величинам символьного типа применимы
все операции отношения. Для величин символьного
типа определены две функции преобразования
Ord(C) Chr(K).
Первая функция определяет порядковый номер символа С в наборе символов, вторая определяет по порядковому номеру К символ, стоящий на К-ом месте в наборе символов. Порядковый номер имеет целый тип.
К
аргументам символьного типа применяются
функции, которые определяют предыдущий
и последующий символы:
Pred(C) Succ(C). Pred('F') = 'E' ; Succ('Y')
= 'Z' .
При
отсутствии предыдущего или последующего
символов значение соответствующих функций
не определено. Для литер из интервала
'a'..'z' применима функция UpCase(C), которая
переводит эти литеры в верхний регистр
'A'..'Z'.
1.2
Массивы в языке
Представьте себе таблицу, состоящую из нескольких строк. Каждая строка состоит из нескольких ячеек. Тогда для точного определения положения ячейки нам потребуется знать не одно число (как в случае таблицы линейной), а два: номер строки и номер столбца. Структура данных в языке Паскаль для хранения такой таблицы называется двумерным массивом. Описать такой массив можно двумя способами:
I. Var
A : Array [1..20] Of Array [1..30] Of Integer;
II. Var
A : Array [1..20,1..30] Of Integer;
В обоих случаях описан двумерный массив, соответствующий таблице, состоящей из 20 строк и 30 столбцов. Приведенные описания совершенно равноправны.
Отдельный элемент двумерного массива адресуется, естественно, двумя индексами. Например, ячейка, находящаяся в 5-й строке и 6-м столбце будет называться A[5][6] или A[5,6].
Для иллюстрации способов работы с двумерными массивами решим задачу: "Задать и распечатать массив 10X10, состоящий из целых случайных чисел в интервале [1,100]. Найти сумму элементов, лежащих выше главной диагонали."
При
отсчете, начиная с левого верхнего
угла таблицы, главной будем считать диагональ
из левого верхнего угла таблицы в правый
нижний. При этом получается, что элементы,
лежащие на главной диагонали будут иметь
одинаковые индексы, а для элементов выше
главной диагонали номер столбца будет
всегда превышать номер строки. Договоримся
также сначала указывать номер строки,
а затем - номер столбца.
Program M5;
Var
A : Array[1..10,1..10] Of Integer;
I, K : Byte;
S : Integer;
Begin
S:=0;
For I:=1 To 10 Do
Begin
For K:=1 To 10 Do
Begin
A[I,K]:=Trunc(Random*100)+1;
Write(A[I,K]:6);
If K>I Then S:=S+A[I,K]
End;
Writeln
End;
Writeln('Сумма элементов выше гл. диагонали равнаV',S)
End.
Если модель данных в какой-либо задаче не может свестись к линейной или плоской таблице, то могут использоваться массивы произвольной размерности. N-мерный массив характеризуется N индексами. Формат описания такого типа данных:
Type
<Имя
типа>=Array[<диапазон
<диапазон
индекса N>] Of <тип компонент>;
Отдельный элемент именуется так:
<Имя
массива>[<Индекс 1>,<Индекс 2>,...,<Индекс
N>]
1.3
Процедуры и функции
При
решении сложных объемных задач
часто целесообразно разбивать
их на более простые. Метод последовательной
детализации позволяет
В языке Паскаль существует два вида подпрограмм: процедуры и функции, определяемые программистом. Процедурой в Паскале называется именованная последовательность инструкций, реализующая некоторое действие. Функция отличается от процедуры тем, что она должна обязательно выработать значение определенного типа.
Процедуры и функции, используемые в программе, должны быть соответствующим образом описаны до первого их упоминания. Вызов процедуры или функции производится по их имени.
Подпрограммы
в языке Паскаль могут иметь
параметры (значения, передаваемые в
процедуру или функцию в
Формат описания процедуры:
Procedure <Имя процедуры> (<Имя форм. параметра 1>:<Тип>;
< Имя форм. параметра 2>:<Тип>?);
<Раздел описаний>
Begin
<Тело процедуры>
End;
Раздел описаний может иметь такие же подразделы, как и раздел описаний основной программы (описание процедур и функций - в том числе). Однако все описанные здесь объекты "видимы" лишь в этой процедуре. Они здесь локальны также, как и имена формальных параметров. Объекты, описанные ранее в разделе описаний основной программы и не переопределенные в процедуре, называются глобальными для этой подпрограммы и доступны для использования.
Легко
заметить схожесть структуры программы
целиком и любой из ее процедур.
Действительно, ведь и процедура
и основная программа реализуют некий
алгоритм, просто процедура не дает решения
всей задачи. Отличие в заголовке и в знаке
после End.
Формат описания функции:
Function <Имя функции> (<Имя форм. параметра 1>:<Тип>;
< Имя форм. параметра 2>:<Тип>?) : <Тип результата>;
<Раздел описаний>
Begin
<Тело функции>
End;
В теле функции обязательно должна быть хотя бы команда присвоения такого вида: <Имя функции>:=<Выражение>; Указанное выражение должно приводить к значению того же типа, что и тип результата функции, описанный выше.
Вызов процедуры представляет в программе самостоятельную инструкцию:
<Имя
процедуры>(<Фактический
Вызов функции должен входить в выражение. При вычислении значения такого выражения функция будет вызвана, действия, находящиеся в ее теле, будут выполнены, в выражение будет подставлено значение результата функции.
Приведем простейший пример использования подпрограммы.
Задача: "Найти максимальное из трех введенных чисел". Для решения воспользуемся описанием функции, принимающей значение максимального из двух чисел, которые передаются в нее в виде параметров.
Program Fn;
Var
A,B,C :Real;
Function Max(A,B:Real):Real; {Описываем функцию Max с формальными}
Begin {параметрами
A и B, которая принимает }
If A>B Then Max:=A {значение максимального из них }
Else Max:=B
{Здесь A и B - локальные переменные
}
End;
Begin
Writeln('Введите три числа');
Readln(A,B,C);
Writeln('Максимальным
из всех является ', Max(Max(A,B),C))
End.
Обратите внимание на краткость тела основной программы и на прозрачность действий внутри функции. Формальные параметры A и B, используемые в подпрограмме, не имеют никакого отношения переменным A и B, описанным в основной программе.
Существует два способа передачи фактических параметров в подпрограмму: по значению и по ссылке. В первом случае значение переменной - фактического параметра при вызове подпрограммы присваивается локальной переменной, являющейся формальным параметром подпрограммы. Что бы потом ни происходило с локальной переменной, это никак не отразится на соответствующей глобальной. Для одних задач это благо, но иногда требуется произвести в подпрограмме действия над самими переменными, указанными в качестве фактических параметров. На помощь приходит второй способ. Происходит следующее: при обращении к подпрограмме не происходит формирования локальной переменной -формального параметра. Просто на время выполнения подпрограммы имя этой локальной переменной будет указывать на ту же область памяти, что и имя соответствующей глобальной переменной. Если в этом случае изменить локальную переменную, изменятся данные и в глобальной.
Передача
параметров по ссылке отличается тем,
что при описании подпрограммы перед
именем переменной - формального параметра
ставится служебное слово Var. Теперь использование
в качестве фактических параметров выражений
или непосредственных значений уже не
допускается - они должны быть именами
переменных.
1.4
Графические возможности языка программирования
Pascal
Экран
дисплея ПК представляет собой прямоугольное
поле, состоящее из большого количества
точек. Дисплей может работать в
текстовом и графическом
Чтобы сделать процесс графического программирования более эффективным, фирма Borland International разработала специализированную библиотеку Graph (в этом библиотечном модуле содержится 79 графических процедур, функций, различных стандартных констант и типов данных), набор драйверов, позволяющих работать с разными типами мониторов, и набор шрифтов для вывода на графический экран текстов разной величины и формы.
Аппаратная поддержка графики ПК обеспечивается двумя основными модулями: видеомонитором и видеоадаптером. Какой бы адаптер ни был установлен на компьютере, мы можем использовать один и тот же набор графических процедур и функций Турбо Паскаля благодаря тому, что их конечная настройка на конкретный адаптер осуществляется автоматически. Эту настройку выполняют графические драйверы.

- Информатика в жизни рядового чаеловека
- Информатика, виды информатики
- Информатикадан кластан тыс жұмыстарды ұйымдастыру
- Информатикадан танымдық жұмыстар жүргізу
- Информатика и вычислительная техника
- Информатика и информационные технологии
- Информатика и информационные технологии в образованных учреждениях
- Информатизация современного общества
- Информатизация современных технологий обучения в профессиональном обучении
- Информатизация судебной системы
- Информатизация судов в Российской Федерации
- Информатизация судов общей юрисдикции и Судебного департамента
- Информатика
- Информатика