close

Вход

Забыли?

вход по аккаунту

?

andonina-andrievckaya

код для вставкиСкачать
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение
высшего профессионального образования
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ
Е. М. Анодина-Андриевская
ОСНОВЫ
КОМПЬЮТЕРНЫХ
ТЕХНОЛОГИЙ
Учебное пособие
Санкт-Петербург
2006
1
УДК 004
ББК 32.973-018.2
А69
Анодина-Андриевская Е. М.
А69 Основы компьютерных технологий: Учеб. пособие / ГУАП.
СПб., 40 с.
Учебное пособие содержит теоретический материал по дисциплине
"Компьютерные технологии в приборостроении".
Оно предназначено для студентов специальностей 1910, 1903, 1902,
5515, изучающих дисциплину "Компьютерные технологии в
приборостроении".
Учебное пособие подготовлено к публикации кафедрой
компьютерных систем проектирования и рекомендовано к изданию
редакционно-издательским советом Санкт-Петербургского университета
аэрокосмического приборостроения.
Рецензент
канд. техн. наук Исаков В. И.
© ГОУ ВПО «Санкт-Петербургский
государственный университет
аэрокосмического приборостроения», 2006
2
ПРЕДИСЛОВИЕ
Компьютерные технологии служат для автоматизации процессов
создания, переработки, хранения, передачи и накопления информации.
Учебное пособие содержит основные понятия компьютерных
технологий.
Целями данного учебного пособия являются:
− изложение основных понятий и современных подходов к компьютерным
технологиям,
− описание аппаратного и программного обеспечения компьютерной
техники,
− представление основ программирования на языках высокого уровня,
− демонстрация возможностей систем автоматизации в современных
информационных технологиях.
В результате изучения дисциплины «Компьютерные технологии в
приборостроении» студенты должны:
− получить представление об аппаратных и программных средствах ЭВМ,
− усвоить основные принципы алгоритмизации и программирования на
языках высокого уровня С/С++;
− изучить основы программных средств автоматизации математических
расчетов;
− освоить приемы использования систем автоматизации математических
расчетов для решения инженерных задач.
В учебном пособии подробно рассмотрены основные понятия
программирования на языках С/С++:
− основы построения программы,
− ввод и вывод данных,
− операции и операторы, реализующие последовательные, ветвящиеся и
циклические алгоритмы,
− функции графического режима.
Кроме того, в пособии представлены основные приемы работы с
текстовыми редакторами, табличными процессорами и системами
автоматизации математических расчетов (на примере системы MATLAB).
Оно предназначено для студентов, изучающих дисциплины
«Компьютерные технологии» и «Компьютерные технологии в
приборостроении».
3
1 АППАРАТНОЕ И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
КОМПЬЮТЕРНОЙ ТЕХНИКИ
1.1 Основные блоки компьютера
Как правило, персональные компьютеры состоят из системного
блока и внешних устройств.
В системном блоке располагаются основные узлы компьютера:
- электронные
схемы,
управляющие
работой
компьютера
(микропроцессор, оперативная память, контроллеры устройств),
- блок питания, преобразующий электропитание сети в постоянный ток
низкого напряжения, подаваемый на электронные схемы компьютера,
- накопители на жестких и гибких магнитных дисках.
Микропроцессор – это электронная схема, выполняющая
вычисления и обработку информации.
Важным элементом компьютера является оперативная память. Из
оперативной памяти процессор берет программы и исходные данные для
обработки, в нее он записывает полученные результаты.
Постоянная память содержит данные, доступные только для чтения.
В постоянной памяти хранятся программы для проверки оборудования
компьютера, загрузки операционной системы и выполнения базовых
функций по обслуживанию устройств компьютера. Содержимое
постоянной памяти называется BIOS (Basic Input-Output System).
Микропроцессор, оперативная память, BIOS, шина (шины) данных
располагаются на материнской плате. Там же, как правило, располагаются
контроллеры – электронные схемы, управляющие устройствами
компьютера. Если контроллеры входят в состав материнской платы, они
называются встроенными или интегрированными. Некоторые контроллеры
располагаются на отдельных электронных платах - платах контроллеров,
которые вставляются в слоты.
Кроме того, в состав системного блока входят внутренние
накопители с различными типами носителей.
1.2 Устройства ввода информации
Наиболее распространенными устройствами ввода информации
являются указательные устройства, клавиатура, сканеры.
Указательные устройства позволяют путем перемещения курсора
и нажатия клавиш указывать на элементы, расположенные на экране
компьютера.
К указательным устройствам относятся «мышь», трекбол,
трекпоинт, сенсорная панель.
4
«Мышь» – это оптико–механическое устройство, включающее в
себя шар и валики для регистрации перемещений указателя.
Существует ряд разновидностей «мыши»:
- трехкнопочная «мышь»,
- оптическая «мышь»,
- беспроводная «мышь» и т. д.
Наиболее распространенная альтернатива «мыши» - трекбол –
устройство для перемещения указателя путем вращения шара рукой.
Клавиатура предназначена для ввода информации в компьютер.
Каждая клавиша клавиатуры представляет собой крышку миниатюрного
переключателя. Содержащийся в клавиатуре микропроцессор отслеживает
состояние переключателей и при нажатии или отпускании клавиш
посылает в компьютер соответствующее сообщение (прерывание).
Клавиши стандартной клавиатуры подразделяются на несколько
типов:
- алфавитно-цифровые,
- функциональные,
- клавиши управления курсором,
- клавиши цифровой клавиатуры,
- специальные клавиши,
- переключатели режимов.
В настоящее время разработаны различные модификации
клавиатур, в том числе эргономические клавиатуры, клавиатуры с
трекболом или сенсорным экраном.
Сканером называется внешнее устройство, позволяющее вводить в
компьютер двухмерное изображение.
Принцип работы сканера заключается в том, что поверхность
изображения
освещается
перемещающимся
лучом
света,
а
светочувствительный
прибор
воспринимает
отраженный
свет,
интенсивность которого зависит от яркости освещенного участка
изображения, и преобразовывает его в электрический сигнал. Полученный
электрический сигнал преобразовывается из аналоговой в цифровую
форму и в виде цифровой характеристики яркости точки поступает в
компьютер.
В зависимости от способа освещения элементов изображения
оптические читающие устройства подразделяются на устройства со
считыванием изображений линейкой и матрицей фотоэлементов, со
спиральной барабанной разверткой, со считыванием методом «бегущего
луча».
Считывание линейкой фотоэлементов заключается в том. что
изображение освещается полоской света, а отраженный свет падает на
фотоэлементы, смонтированные в виде линейки. Каждый фотоэлемент
фиксирует попавшую на него часть светового потока. Электрический
5
сигнал считывается последовательно со всех элементов линейки. После
считывания полоска света перемещается на следующую часть документа.
Считывание матрицей фотоэлементов производится аналогично, но
фотоэлементы смонтированы в виде матрицы. В этом случае документ
освещается целиком, а не отдельными полосками, и перемещения
документа относительно считывающей головки не требуется.
Оптические считыватели со спиральной барабанной разверткой
состоят из барабана с закрепленным на нем носителем считываемого
изображения, зеркала, источника света, фотоэлемента и механического
привода для вращения барабана и перемещения зеркала. Отражаясь от
зеркала, луч падает на образующую барабана и освещает точку на ее
поверхности. Вращение барабана и перемещение зеркала вдоль его
образующей происходят одновременно, благодаря чему луч по спирали
«разворачивает» изображение, находящееся на поверхности барабана.
Отраженный от барабана свет воспринимается фотоэлементом.
Оптические считыватели методом «бегущего луча» построены по
принципу растровой развертки. В состав такого считывателя входят:
генератор развертки, источник света, экран, объектив, фотоэлемент и блок
кодирования изображения. В качестве источников света могут быть
использованы электронно-лучевые трубки или лазерные источники.
Вводимое с использованием сканера изображение может
использоваться непосредственно как текст. Для распознавания текста
используются специальные программы.
1.3 Устройства отображения и вывода информации
К устройствам отображения и вывода информации относятся
мониторы, принтеры, плоттеры.
Монитор (дисплей) компьютера предназначен для вывода на экран
текстовой и графической информации.
Изображение на экране дисплея состоит из прямоугольной матрицы
пикселов. Каждый пиксел имеет такие атрибуты, как цвет и яркость. Число
строк и столбцов матрицы называется разрешением изображения.
В настоящее время широко используются два типа дисплеев:
- дисплеи на электронно-лучевых трубках,
- плоскопанельные дисплеи.
Принтером называется внешнее устройство компьютерной
техники, предназначенное для вывода информации на твердый носитель в
символьном или графическом виде.
По способу вывода изображения принтеры делятся на две группы:
символьные (посимвольные, построчные, постраничные) и графические.
Символьные принтеры могут выводить информацию в виде отдельных
символов по мере их поступления в печатающее устройство. В
6
посимвольных принтерах за один цикл печати формируется один знак. В
построчных принтерах за один цикл печати формируется одна строка.
Постраничные принтеры за один цикл печати формируют одну страницу.
Графические принтеры выводят информацию в виде отдельных точек или
линий.
По способу регистрации изображения принтеры делятся на ударные
и безударные.
Принтеры ударного действия формируют изображение путем удара
по красящей ленте пишущим элементом. Эти принтеры подразделяются на
литерные и матричные. Литерные принтеры выводят информацию в виде
символов, нанесенных на специальные рычаги или литерные колеса
.Матричные принтеры выводят информацию в виде символов,
сформированных из отдельных точек.
К принтерам безударного действия относятся электрографические,
термические и струйные принтеры. Электрографические принтеры
формируют изображение с использованием промежуточных носителей,
чувствительных к электрическому воздействию, электростатическому и
магнитному
полям.
Термические
принтеры
используют
термочувствительную бумагу, которая изменяет свой цвет под действием
тепловых лучей. У струйных принтеров жидкий краситель находится в
печатающей головке. Головка имеет отверстия, через которые краситель не
может вылиться из-за сил поверхностного натяжения. Внутри головки
находится терморезистор, который при подаче на него импульса тока
разогревает краситель, увеличивая его испарение. Пары красителя через
отверстия в головке попадают на бумагу в виде капель.
Плоттеры и графопостроители выводят текстовую и графическую
информацию в виде точек или линий.
Выбор конкретного вида печатающего устройства определяется
исходя из конкретных задач пользователя.
1.4 Программное обеспечение компьютерной техники
Программное обеспечение компьютерной техники подразделяется
на системное и прикладное.
К системному программному обеспечению относятся программные
компоненты, обеспечивающие многоцелевое применение компьютеров:
операционные системы, драйверы, программы-оболочки и вспомогательные
программы. Операционные системы служат для управления компьютером,
запуска программ, обеспечения защиты данных, выполнения различных
сервисных функций по запросам пользователя. Драйверы устройств служат
для управления устройствами компьютера. Программы-оболочки
обеспечивают удобный и наглядный способ общения с компьютером. К
7
вспомогательным программам относятся программы резервирования,
антивирусные программы, программы-архиваторы и. т. д.
Прикладные программы обеспечивают специфическое применение
компьютеров. Прикладной программой называется программный продукт,
предназначенный для решения конкретной задачи пользователя. К
прикладному программному обеспечению относятся редакторы документов,
табличные процессоры, издательские системы, графические редакторы,
системы управления базами данных, системы автоматизированного
проектирования и. т. д.
2 ОСНОВЫ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ С/С++
2.1 Описание языков программирования С/С++
Для создания компьютерных программ используются системы
программирования (или инструментальные системы). В настоящее время
широко применяются системы программирования на языках С/С++.
В системы программирования на языках С/С++ входят:
- интегрированная среда программирования (программа, содержащая
встроенный редактор текстов, подсистему работы с файлами, систему
помощи, встроенный отладчик и т. д.),
- компилятор исходного текста программы,
- редактор связей,
- библиотеки заголовочных файлов,
- библиотеки функций,
- программы-утилиты.
Текст программы на языках С/С++ содержит базовые символы,
которые можно разделить на следующие группы:
- буквы латинского алфавита,
- десятичные цифры,
- знаки операций,
- скобки,
- знаки пунктуации,
- специальные символы.
Комбинации базовых символов без пробелов образуют составные
символы.
Символы пробела, табуляции, перевода строки, возврата каретки
относятся к пробельным символам.
Совокупность букв, цифр и знаков подчеркивания, задающая имя
переменной, название функции или ключевое слово в программе,
называется идентификатором.
8
Ключевые слова – это предопределенные идентификаторы,
используемые для составления текста программы.
Синтаксически неделимая единица текста программы, имеющая
определенный смысл для компилятора, от 1 до нескольких символов
алфавита, в том числе знаки пунктуации, скобки, ключевые слова,
константы и идентификаторы переменных и функций, называется
лексемой. Границами лексем служат пробельные символы или другие
лексемы.
2.2 Структура программы на С/С++
Программа на языке высокого уровня содержит формализованный
текст, включающий описательные предложения для представления
объектов программы и исполняемые предложения (операторы),
реализующие алгоритм задачи.
Программа на языках С/С++ представляет собой набор функций, то
есть вспомогательных программных единиц. Одна из функций является
обязательной и за ней закреплено имя main(). Для выделения части кода
используются фигурные скобки «{}», конец инструкции отмечается точкой
с запятой «;». Комментарии отмечаются знаками «/*
*/». В С++
возможно также использование знаков «// ».
Структура программы:
тип main(параметры) /*имя функции, указывающей точку входа*/
{
/*блок инструкций*/
инструкция 1;
.
.
.
инструкция N;
return(значение);
}
"Тип" – это ключевое слово типа для взвращаемого функцией
значения или при отсутствии типа ключевое слово void (отсутствие типа).
"Параметры" – это необязательный список формальных параметров
с их типами.
Программа обычно содержит директивы препроцессора - указания
для предварительной обработки текста исходного файла перед его
компиляцией. Директивой является строка, начинающаяся с символа "#".
Директивы включения файлов позволяют подключить общие файлы
заголовков с расширением ".h", через которые осуществляется доступ к
стандартным библиотекам. Формат директивы имеет вид:
#include <имя_файла>.
Директивы подстановки имен позволяют программисту создавать
собственные символические константы и макроопределения для
фрагментов исходного текста программы по формату:
#define идентификатор текст.
9
2.3 Представление данных в С/С++
Данные, используемые в вычислительном процессе – это константы
и переменные.
Константы – это неизменяемые величины в программе,
определяемые их типом и формой представления.
Определение констант:
#define имя_константы значение
main()
{
}
В С++ возможен следующий вариант определения констант:
main()
{
const тип1 имя_константы1=значение1;
. . .
const типN имя_константыN=значениеN;
}
Переменные – это данные, значения которых могут меняться в ходе
работы программы.
Определение переменных:
main()
{
тип1 имя_переменной1_1, ..., имя_переменной1_M;
. . .
типN имя_переменнойN_1, ..., имя_переменнойN_M;
}
В С/С++ типы данных разбиваются на 4 категории:
- "пустой" тип (void),
скалярный тип (арифметические типы, перечисления,
указатели и в С++ - ссылочный тип),
- тип "функция",
- агрегированный тип (массивы, структуры, объединения и в С++ классы).
Типы подразделяются на основные и производные. К основным
типам относятся void, char, int, float совместно с вариантами short, long,
signed, unsigned. Производные типы – это указатели и ссылки на другие
типы, массивы, функции, классы, структуры и объединения.
Наиболее распространенные типы констант и переменных в С/С++
приведены в табл. 1.
10
Таблица 1
Oбозначение
Название
char
символьные данные
-128...127
символьные данные
0...255
-32768...32767
-32768...32767
0...65535
-2147483648...
2147483647
0...4294967295
1
3.4*Е-38... 3.4*Е+38
1.7*Е-308...
1.7*Е+308
3.4*Е-4932...
3.4*Е+4932
4
8
unsigned
char
int
short int
unsigned int
long int
unsigned
long
float
double
long double
Количество
байт
1
2
2
2
4
Примеры использования
константы
переменные
#define C ‘A’
char c
const char f=’A’
#define C ‘A’
unsigned char
c
#define I 7
int n
short int k
unsigned int i
long int j
4
#define PI 3.14
10
unsigned long
l
float a,b
double b,d,f
long double g
2.4 Ввод и вывод в С/С++
Для реализации функций ввода-вывода необходимо включить в
текст программы файлы заголовков stdio.h (подключение функций
стандартного ввода-вывода) и conio.h (подключение функций консольного
ввода-вывода) с помощью директивы #include:
#include < stdio.h >,
#include < conio.h >.
Стандартный
ввод-вывод
может
быть
двух
видов:
форматированный и неформатированный. Функции ввода и вывода
приведены в табл.2.
11
Таблица 2
ВЫВОД
ВВОД
Функция
Назначение
Примеры
Функция Назначение
Примеры
использования
использования
форматированный ввод и вывод (файл заголовков stdio.h)
printf
(формат,
данные)
для вывода printf("n= %d,
данных
v= %f",n,v)
scanf
(формат,
данные)
для
ввода scanf("%f",&a
данных
)
Строка формата заключается в кавычки и может содержать любой текст и метки,
называемые указателями формата. Каждый указатель формата начинается с символа "%",
после которого стоит буква, указывающая тип данных:
- %d - целое число,
- %o - целое число в восьмеричной системе,
- %u - целое число без
- %x - целое число в шестнадцатеричной системе,
знака,
- %f – вещественное число типа float или double,
- %c – символ,
- %e – вещественное число в экспоненциальной форме,
- %s – строка,
- %g – вещественное число в наиболее короткой форме
неформатированный ввод и вывод (файл заголовков stdio.h)
puts()
putchar()
для вывода
на
экран
строковых
литералов,
констант и
переменных
для вывода
единичного
символа на
экран
#define C ‘A’
char s=’ABC’
main()
{puts(‘ABC’);
puts(C);
puts(s);}
#define C ‘A’
main()
{char l;
putchar(‘A’);
putchar(C);
putchar(l);}
gets()
для
ввода main()
строки
в {
переменную char s[15];
gets(s);
}
getchar()
для ввода с
клавиатуры
единичного
символа
main()
{char с;
int i;
c=getchar();
i=getchar();}
консольный ввод и вывод (файл заголовков conio.h)
putch()
cputs()
cprintf()
для вывода putch(C);
единичного
символа на
экран
getch()
вывод строк
cputs(‘ABC’)
вывод
сообщений
и cprintf("ABC\n
значений
\r")
переменных
}
getche()
код нажатой c=getch();
клавиши без getch();
отображения
код нажатой c=getche();
клавиши
с
отображением
с указанием цвета текста и фона
В С++ ввод-вывод данных любых типов (файл заголовков iostream.h)
вывод данных cout<<C<<p
ввода данных cin>>C>>p
cout
cin
12
Перемещением курсора на экране можно управлять с помощью
escape-последовательностей:
- \a – «звуковой сигнал»,
- \b – «возврат на шаг»,
- \f – «перевод страницы»,
- \n – «новая строка»,
- \r – «возврат каретки»,
- \t – «горизонтальная табуляция»,
- \v – «вертикальная табуляция».
Escape-последовательности также можно использовать для вывода
на экран специальных символов:
\’ - одинарная кавычка,
\” - двойная кавычка,
\\ - обратная косая черта,
\? - знак вопроса.
Цвет текста задается функцией textcolor(цвет). В качестве
параметра «цвет» используются данные табл.3.
Таблица 3
Цвет
Константа
Значение константы
Черный
Синий
Зеленый
Бирюзовый
Красный
Сиреневый
Коричневый
Светло-серый
Серый
Голубой
Светло-зеленый
Светло-бирюзовый
Алый
Светло-сиреневый
Желтый
Белый
BLACK
BLUE
GREEN
CYAN
RED
MAGNETA
BROWN
LIGHTGRAY
DARKGRAY
LIGHTBLUE
LIGHTGREEN
LIGHTCYAN
LIGHTRED
LIGHTMAGNETA
YELLOW
WHITE
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Цвет фона задается функцией textbackground(цвет). В качестве
параметра «цвет» используются данные табл.4.
Таблица 4
Цвет
Константа
Значение константы
Черный
Синий
Зеленый
Бирюзовый
Красный
Сиреневый
Коричневый
Светло-серый
BLACK
BLUE
GREEN
CYAN
RED
MAGNETA
BROWN
LIGHTGRAY
13
0
1
2
3
4
5
6
7
Команда gotoxy(x,y) переводит курсор в позицию с указанными
координатами. Координата x задает номер колонки, координата y - номер
строки, на пересечении которых находится знакоместо, куда переводится
курсор. Команда clrscr() очищает экран и закрашивает его цветом,
заданным функцией textbackground(цвет). Команда window(x1,y1,x2,y2)
определяет окно – прямоугольная область экрана. Параметры x1, y1 задают
координаты левого верхнего угла относительно экрана, параметры x2, y2 –
координаты правого нижнего угла.
2.5 Операции в С/С++
Операции в С/С++ можно условно разделить на следующие виды
(табл. 5).
Таблица 5
Операции
сдвига
Операции
присвваивания и
условия
Логические
операторы
Операции
отношения
Инкремент и
декремент
Арифметические
операции
Название
Пример
+
*
/
%
()
++
Действие
сложение
вычитание
умножение
деление
остаток от деления нацело
изменение приоритетов
увеличение значения
--
уменьшение значения
j=--i; j=i--
равно
больше
меньше
больше или равно
меньше или равно
не равно
логическое "НЕ"
логическое "ИЛИ"
логическое "И"
поразрядное "НЕ"
поразрядное "ИЛИ"
поразрядное "И"
поразрядное исключающее "ИЛИ"
A==B
A>B
A<B
A>=B
A<=B
A!=B
!(A==B)
(A!=1)||(B==0)
(C>25)&&(d<=9)
~A
A|B
A&B
A^B
=
присваивание
A=B=C=0
?:
условие
C=A>B? A*A+B*B: 0
<<
сдвиг влево
B1=B<<1
>>
сдвиг вправо
B2=B>>1
==
>
<
<=
<=
!=
!
||
&&
~
|
&
^
14
A%(B*((C-D)+(G-F))/P-Q)
j=++i; j=i++
2.6 Операторы ветвления
Операторы ветвления (табл. 6) служат для выбора продолжения
вычислительного процесса из группы альтернатив.
Таблица 6
Конструкция
if (условие)
{
блок_инструкций;
/* инструкции, которые будут выполнены,
если значение выражения "условие" не
равно нулю */
}
if (условие)
{
блок_инструкций_1;
/* инструкции, которые будут выполнены,
если значение выражения "условие" не
равно нулю */
}
else
{
блок_инструкций_2;
/* инструкции, которые будут выполнены,
если значение выражения "условие" равно
нулю */
}
switch (переменная)
{
case 'значение_1':
блок_инструкций_1; break;
. . .
case 'значение_k':
блок_инструкций_k; break;
}
Пример
1. if (a>b) a=b;
2. if (i>1 && i<10)
{
b=a+c;
d=b-10;
}
if (d==0 || d==5)
{
c=d+1;
a=c/b;
}
else
{
g=a%n;
puts("****");
}
switch (c)
{
case '1':
a=b/10; m=n+1; break;
case '2':
a=b/20; m=n+2; break;
case '3':
a=b/30; m=n+3; break;
}
switch (переменная)
{
case 'значение_1':
блок_инструкций_1; break;
. . .
case 'значение_k':
блок_инструкций_k; break;
default:
блок_инструкций; break;
}
switch (c)
{
case '1':
a=b/10; m=n+1; break;
case '2':
a=b/20; m=n+2; break;
case '3':
a=b/30; m=n+3; break;
default:
a=0; m=0; break;
}
15
2.7 Операторы цикла
Операторы цикла (табл. 7) используются для организации повтора в
программе определенных действий.
Таблица 7
Конструкция
Пример
Циклы с фиксированным числом повторений
for (инициализация;условие_выполнения;
изменение)
{
блок_инструкций (тело цикла);
}
Инициализация – инструкция
инициализации счетчика циклов.
Условие_выполнения – выражение, значение
которого определяет условие, при котором
выполняются
инструкции
цикла
(инструкции цикла выполняются до тех пор,
пока условие_выполнения истинно, т. е. не
равно нулю).
Изменение
–
инструкция
изменения
параметров цикла.
for (i=1;i<=10; i++)
{
s=2*i;
printf(“i=%d, s=%d\n”,i,s);
}
Циклы с постусловием
i=0;
do
{
s=2*i;
printf(“i=%d, s=%d\n”,i,s);
i++;
Сначала выполняется тело цикла, затем }
проверяется
значение
выражения while(i<=10);
условие_повторения, и если условие
истинно, то инструкции цикла (тело цикла)
выполняются
до
тех
пор,
пока
условие_повторения не станет ложным.
do
{
блок_инструкций (тело цикла);
}
while(условие_повторения);
Циклы с предусловием
while(условие_выполнения)
{
блок_инструкций (тело цикла);
}
Инструкции
цикла
(тело
цикла)
выполняются
до
тех
пор,
пока
условие_выполнения не станет ложным.
i=0;
while(i<=10)
{
s=2*i;
printf(“i=%d, s=%d\n”,i,s);
i++;
}
16
2.8 Массивы и строки
Массивом называется множество расположенных в памяти друг за
другом элементов одного типа, которыми можно оперировать как группой.
Элементы массива различаются номерами (индексами). Индексация в
С/С++ начинается с нуля. Количество индексов, необходимых для
описания массива и организации доступа к элементам массива, определяет
размерность массива. Массивы можно условно разделить на одномерные и
многомерные. Элементами многомерного массива являются массивы
меньшей размерности.
Определение массива:
тип_значений имя_массива [размер1] [размер2]...
Существует два способа обращения к элементам массива.
1). Использование индексных выражений имя[индексное выражение].
2). использование указателей и адресных выражений.
Указателем называется переменная, с помощью которой можно
обращаться к области памяти, отведенной под другую переменную.
Определение указателя:
тип_переменной *имя_указателя.
Присвоение указателю значения в виде адреса соответствующей
переменной выполняется следующим образом:
имя_указателя=&имя_переменной.
Имя массива является адресом первого байта элемента с индексом
0. Адрес элемента вычисляется по формуле:
адрес_элемента=имя_массива+индекс*sizeof(тип_массива),
где функция sizeof определяет размер элемента в байтах.
Адресное выражение образуется с использованием имени массива
или указателя на массив. Доступ к элементам массива через адресное
выражение осуществляется с помощью операции разадресации.
Занесение данных в массив осуществляется тремя способами:
1) инициализацией массива,
2) использованием функций ввода,
3) присваиванием значений.
Инициализация массива выполняется при описании массива путем
задания начальных значений элементов в списке инициаторов,
заключенном в фигурные скобки (инициаторы разделяются запятыми).
Ввод данных в массив функцией scanf() выполняется поэлементно,
для чего используется оператор цикла.
Присваивание значений элементам массива выполняется при
вычислении выражений, определяющих элементы массива.
В языках программирования
C/C++ существуют широкие
возможности для работы с символьными массивами.
17
Массив символов называется строкой и описывается следующим
образом:
char имя [размер].
Строковым литералом называется последовательность символов
заключенных в кавычки. Строковый литерал представляется в памяти как
массив элементов типа char, в конце которого помещен символ '\0'
(нулевой байт).
Инициализация символьного массива осуществляется поэлементно
или с использованием строковых литералов.
Для работы со строками можно использовать специальные функции
(табл.8).
Таблица 8
Функция
Описание
strcat()
Объединение строк
strncat()
Добавление определенного количества символов одной строки в
другую
strcmp()
Сравнение строк
strncmp() Сравнение определенного количества символов в двух строках
strcmpi() Сравнение двух строк без учета регистра символов
strcpy()
Копирование одной строки в другую
strncpy() Копирование определенного количества символов из одной строки
в другую
strlen()
Определение длины строки
strchr()
Нахождение первого вхождения символа в строку
strrchr()
Нахождение последнего вхождения символа в строку
strset()
Замена символов строки заданным символом
strnset()
Замена определенного количества символов строки заданным
символом
strdup()
Дублирование строки
strlwr()
Преобразование строчных символов в прописные
strupr()
Преобразование прописных символов в строчные
2.9 Структуры в С/С++
Структурой называется переменная,
переменные различных типов.
Определение структуры:
struct имя_структуры
{
тип_1 имя_переменной_1;
.
.
.
тип_N имя_переменной_N;
}
18
включающая
в
себя
Определение структурных переменных:
struct имя_структуры_1 имя_переменной_1_1,...имя_переменной_1_n;
struct имя_структуры_m имя_переменной_m_1,...имя_переменной_m_n;
Обращение к структуре:
имя_структуры.имя_переменной.
2.10 Работа с файлами в С/С++
Файлом называется область на носителе информации, имеющая
имя.
Для работы с файлами необходимо включить в текст программы
файл заголовков STDIO.H с помощью директивы #include:
#include <STDIO.H>.
Определение указателя на файл:
FILE *имя_указателя_1, . . ., *имя_указателя_n;
Открытие файла:
имя_указателя=fopen("ИМЯ_ФАЙЛА","РЕЖИМ_ДОСТУПА");
Коды режимов доступа к файлам представлены в табл.9.
Таблица 9
Обозначение
r
w
a
Действие
Чтение информации из файла в память компьютера
Запись данных на диск или вывод на принтер
Добавление информации в конец файла
В случае успешного открытия файла функция fopen возвращает
указатель на поток, из которого можно читать или в который можно
записывать. Если операция открытия файла не была выполнена, функция
возвращает NULL.
В С++ возможны следующие функции для работы с файлами:
ifstream имя_указателя /*чтение файла*/
ofstream имя_указателя /*запись в файл*/
Закрытие файла:
fclose(имя_указателя);
Функции ввода и вывода приведены в табл.10.
19
Таблица 10
Функция
fputs()
fputc()
fprintf()
ВЫВОД
Назначение
построчная
запись в
файл или
вывод на
принтер
посимвольная запись в
файл или
на принтер
форматированный
вывод
Примеры
Функция
fputs(l,fp);
fgets()
l-строка,
fp-указатель
на файл
fputc(c,fp);
fgetc()
c-символ,
fp-указатель
на файл
fprintf(fp,
fscanf()
"%s,%f,%d",
a,b,c);
ВВОД
Назначение
построчное
считывание
из файла
посимвольное
считывание
из файла
форматированный
ввод
Примеры
fgets(l,fp);
l-строка,
fp-указатель
на файл
c=fgetc(fp);
c-символ,
fp-указатель
на файл
fscanf(fp,
"%d", &n);
Для записи и чтения структур при работе с файлами используются
функции fwrite() и fread() соответственно.
Синтаксис функций fwrite() и fread():
fwrite(&имя_структуры, размер_структуры,
количество_записываемых_структур, указатель_на_файл),
fread(&имя_структуры, размер_структуры,
количество_считываемых_структур, указатель_на_файл).
Для определения конца файла используется функция
feof(имя_указателя).
Она возвращает ненулевое значение, если в результате выполнения
последней операции чтения был достигнут конец файла.
Функция ferror(имя_указателя) возвращает ненулевое значение,
если последняя операция с файлом завершилась с ошибкой.
2.11 Использование функций в С/С++
Функцией называется логически самостоятельная именованная
часть программы, которой могут передаваться параметры и которая может
возвращать значение.
Структура функции:
тип_данных имя_функции (список_аргументов)
{
описание данных
операторы
return(выражение)
}
20
Поле "тип_данных" задает тип возвращаемого функцией значения.
По умолчанию функция возвращает значение типа int. Если поле содержит
ключевое слово void, функция не возвращает никакого значения.
Поле "имя_функции" – это указатель на функцию. Его значением
является адрес точки входа в функцию.
Поле "список_аргументов" определяет аргументы, передаваемые в
функцию. Это поле в определении функции называется списком
формальных аргументов или параметров. Каждый параметр определяется
его типом и именем с возможными модификаторами, описывающими
указатель - *, массив – [], функцию - (). Если в функцию не передаются
аргументы, это поле отсутствует или содержит ключевое слово void. В
соответствие формальным аргументам ставятся значения фактических
аргументов, задаваемые при обращении к функции.
Совокупность данных в фигурных скобках называется телом
функции. Тело функции образует блок (или составной оператор),
определяющий действия функции и ее результаты. Блок может содержать
описания используемых в нем переменных. Операторы тела функции
выполняются, пока не встретится оператор return (возврат) или конец
функции – последняя закрывающая фигурная скобка, при этом управление
возвращается в точку вызова функции.
Обращение к функции имеет вид:
имя_функции (список_аргументов),
где "список_аргументов" – последовательность выражений, разделенных
запятыми, представляющих фактические параметры, которые должны
соответствовать списку формальных параметров. При передаче параметров
в функцию может выполняться дополнительное преобразование типов
фактических параметров к типу формальных.
Возможны два способа вызова функции: операнд и оператор.
При обработке вызова функции возможны два способа передачи
данных в функцию и из функции: по значению и по адресу.
В случае передачи данных по значению компилятор, обрабатывая
вызов функции, осуществляет запись копий значений фактических
параметров во временную память. Формальные параметры при
выполнении тела функции работают с копиями аргументов. Таким
образом, формальные и фактические параметры изолируются друг от
друга, поэтому в теле функции нельзя изменить значение фактического
параметра. Такой способ используется, если необходимо сохранить
значения фактических параметров после работы вызываемой функции.
В случае передачи данных по адресу в качестве аргументов при
вызове функции передаются не копии переменных, а копии адресов
переменных. Формальный и фактический параметр, используя один и тот
же адрес (указатель), получают доступ к общему участку памяти
(переменной). После применения операции разадресации в функции
21
можно изменить значение фактического параметра и использовать его как
один из результатов функции. Вызов функции с передачей адресов
аргументов позволяет разрабатывать функции, имеющие доступ к
массивам и другим протяженным объектам данных.
При создании программы объект должен описываться или
объявляться раньше, чем он используется. Если обращение к функции
используется до ее описания, вводится ее объявление с использованием
прототипа. Прототип повторяет заголовок функции, за которым ставится
разделитель (точка с запятой), то есть вводится пустой оператор вместо
тела функции.
Атрибутами объекта являются область действия и время жизни.
Областью действия называется часть текста программы, где может быть
использован данный объект. Время жизни – это интервал времени, в
течение которого значение объекта доступно для использования в
некоторой части программы. Время жизни переменной может быть
локальным или глобальным. Объект с глобальным временем жизни имеет
определенное значение на протяжении всего времени выполнения
программы и располагается в выделенной для него памяти. Для локального
объекта выделяется новая область памяти при каждом входе в блок и
освобождается при выходе из блока, при этом значение объекта теряется.
Переменные, описанные в функции, в том числе формальные параметры,
имеют локальную область действия. Сами функции в программе являются
внешними по отношению друг к другу и имеют глобальное время жизни,
то есть существуют на протяжении всего времени выполнения программы.
2.12. Функции графического режима
При работе с функциями графического режима (табл.11) необходимо
использовать заголовочный файл graphics.h.
Таблица 11
void arc(int x, int y, int УголНачала, int УголКонца, int
Радиус);
Вычерчивает дугу с центром в точке с координатами (x, y). Параметры
УголНачала и УголКонца задают круговые координаты начальной и конечной
точек линии дуги, которая вычерчивается против часовой стрелки от
начальной точки к конечной. Угловые координаты задаются в градусах.
Значение угловой координаты возрастает против часовой стрелки. Параметр
Радиус задает радиус дуги. Линия дуги вычерчивается цветом, заданным
функцией setcolor.
arc
22
Продолжение табл. 11
void bar(int x1,int y1, int x2, int y2 );
bar
Вычерчивает закрашенный прямоугольник. Параметры x1 и y1 задают
положение левого верхнего угла прямоугольника, x2 и y2 – правого нижнего.
Цвет и стиль заливки прямоугольника задаются функцией setfillstyle.
void bar3d (int x1, int y1, int x2, int y2,
bar3d
int Глубина , int В_Грань);
Вычерчивает параллелепипед. Параметры x1 и y1 задают положение левого
верхнего, а x2 и y2 – правого нижнего угла ближней грани параллелепипеда.
Параметр Глубина задает расстояние между передней и задней гранями,
параметр В_Грань определяет, нужно ли вычерчивать границу верхней грани.
Если параметр В_Грань равен нулю, то линия границы верхней грани не
вычерчивается. Цвет и стиль закраски ближней грани параллелепипеда можно
задать при помощи функции setfillstyle, цвет линий границы – при помощи
функции setcolor.
void circle( int x, int y, int r);
circle
Вычерчивает окружность радиуса r с центром в точке с координатами (x, y).
Цвет окружности можно задать при помощи функции setcolor.
void drawpoly(int КолТочек, int * Координаты);
drawpoly
Вычерчивает замкнутую ломанную линию, состоящую из отрезков прямых.
Параметр КолТочек задает количество точек в результате последовательного
соединения которых получается ломанная. Параметр Координаты задает
массив координат узловых точек ломаной. Нулевой и первый элементы
массива Координаты содержат координаты первой точки (x и y), второй и
третий элементы содержат координаты второй точки и т. д.
void ellipse(int x, int y, int УголНачала, int УголКонца, int
ellipse
РадиусХ, int РадиуcY);
Вычерчивает эллипс или дугу эллипса с центром в точке с координатами (x, y).
Параметры УголНачала и УголКонца задают круговые координаты начальной
и конечной точек линии эллипса, которая вычерчивается против часовой
стрелки от начальной точки к конечной. Угловые координаты задаются в
градусах. Значение угловой координаты возрастает против часовой стрелки.
Параметры РадиусX и РадиусY задают горизонтальный и вертикальный
радиусы эллипса.
Линии эллипса или дуги вычерчивается цветом, установленным функцией
setcolor.
int getmaxx(void);
getmaxx, getmaxy
int getmaxy(void);
Функция getmaxx возвращает координату x крайней правой точки экрана,
функция getmaxy – координату y крайней нижней точки экрана.
23
Продолжение табл. 11
int getx(void); int gety(void);
getx, gety
Возвращает координату x (y) указателя ввода.
int graphresult (void);
graphresult
Возвращает результат (код ошибки) последней выполненной графической
операции. Если операция выполнена успешно, функция возвращает ноль.
char* grapherrormsg (int КодОшибки);
grapherrormsg
Возвращает указатель на строку, содержащую сообщение, соответствующее
коду ошибки выполнения графической операции, указанному при вызове
функции
void initgraph (int* Driver, int* Mode, char* Path);
initgraph
Инициализирует графический режим. Параметр Driver определяет драйвер
видеосистемы, параметр Mode – режим работы видеосистемы, параметр Path –
путь к файлу драйвера. Обычно в качестве параметра Driver используют
указатель на целую константу, значение которой равно DETECT. В этом
случае функция initgraph сама определяет тип графического адаптера и
устанавливает для него наилучший режим.
void line(int x1,int y1, int x2, int y2 );
line
Вычерчивает линию из точки с координатами x1, y1 в точку с координатами
x2, y2. Цвет линии можно задать при помощи функции setcolor, стиль – при
помощи функции setlinestyle.
void lineto(int x, int y);
lineto
Вычерчивает линию от текущего положения указателя вывода до точки,
координаты которой указаны при вызове. Линия вычерчивается стилем,
установленным функцией setlinestyle. Цвет линии можно задать, вызвав
функцию setcolor.
void linerel (int dx, int dy);
linerel
Вычерчивает линию из точки текущего положения указателя вывода (xt, yt) в
точку с координатами (xt+dx, yt+dy), т.е. координаты конца линии задаются в
приращениях относительно текущих координат указателя вывода.
Линии вычерчиваются стилем, который устанавливается функцией setlinestyle.
Цвет линии можно задать, вызвав функцию setcolor. Координаты указателя
вывода можно получить при помощи функций getx и gety.
void moveto (int x, int y);
moveto
Перемещает указатель вывода в точку с заданными координатами.
void moverel (int dx, int dy);
moverel
Перемещает указатель вывода на dx и dy пикселов. Если значение параметра dx
(dy) положительное, то указатель перемещается вниз (влево), если
отрицательное, то – вверх (вправо).
24
Продолжение табл. 11
void outtext (const char* Текст);
outtext
Выводит строку символов «Текст» от текущего положения указателя вывода и
перемещает указатель вывода в точку, расположенную за последним
выделенным символом. Строка, передаваемая функции outtext, не должна
содержать символов форматирования, например \n. Цвет выводимых символов
можно задать при помощи функции setcolor, шрифт – settextstyle.
void outtextxy (int x, int y, const char* Текст);
outtextxy
Устанавливает указатель вывода в точку с координатами (x,y) и выводит от
нее строку «Текст», при этом указатель вывода своего положения не меняет,
т.е. остается в точке с координатами (x,y). Цвет выводимых символов можно
задать при помощи функции setcolor, шрифт– settextstyle.
void pieslice(int x, int y, int УголНачала, int УголКонца, int
pieslice
Радиус);
Вычерчивает дуговой сектор радиуса Радиус с центром в точке с
координатами (x,y). Параметры УголНачала и УголКонца задают круговые
координаты начальной и конечной точек линии окружности, которая
вычерчивается против часовой стрелки от начальной к конечной точке.
Угловые координаты задаются в градусах. Значение угловой координаты
возрастает против часовой стрелки. Нулевому углу соответствует
горизонтальный отрезок, проведенный из точки (x,y) в сторону возрастания
координаты x. Если УголНачала=0, а УголКонца=360, то функция pieslice
вычерчивает круг. Сектор закрашивается стилем и цветом, установленными
функцией setfillstyle, линия границы вычерчивается цветом, установленным
функцией setcolor.
void putpixel (int x, int y, int Цвет);
putpixel
Окашивает пиксел, точку с координатами (x,y), цветом «Цвет». В качестве
параметра «Цвет» обычно используют именованную константу.
void rectangle (int x1, int y1, int x2, int y2);
rectangle
Вычерчивает прямоугольник. Параметры x1 и y1 задают положение левого
верхнего угла прямоугольника, x2 и y2 – правого нижнего.
void sector (int x, int y, int Угол1, int Угол2, int РадиусX,
sector
int РадиусY);
Вычерчивает
эллиптический
(РадиусX≠РадиусY)
или
круговой
(РадиусX=РадиусY) сектор. Параметры x и y задают координаты центра
сектора. Параметры Угол1 и Угол2 – углы прямых, ограничивающих сектор,
параметры РадиусX и РадиусY – радиусы эллипса по осям X и Y, из которого
вырезается «сектор». Нулевому углу соответствует горизонтальный отрезок,
проведенный из точки (x,y) в сторону возрастания координаты x. Если
Угол1=0, а Угол2=360, то функция sector вычерчивает полный круг (эллипс).
25
Окончание табл. 11
void setcolor (int Цвет);
setcolor
Задает цвет вывода текста (функции outtextxy и outtext), вычерчивания линий
и фигур (функции line, circle, rectangle и др.).
void setfillstyle (int Стиль, int Цвет);
setfillstyle
Устанавливает стиль и цвет заливки (закрашивания), используемый
функциями вывода областей (bar, bar3d, sector и др.).
void setlinestyle (int ТипЛинии, int Образец, int
setlinestyle
Толщина);
Устанавливает стиль вычерчиваемых контуров и линий.
Параметр «ТипЛинии» определяет вид линии. Параметр «Толщина»
определяет толщину линии. Линия может быть обычной толщины (константа
(NORM_WIDTH) или утолщенная (константа THICK_WIDTH).
Параметр «Образец» используется в том случае, если функция setlinestyle
устанавливает тип линии, определяемый программистом. Значением
параметра «Образец» должна быть четырехразрядная шестнадцатеричная
константа, кодирующая отрезок линии длиной в 16 пикселов.
Параметры функции setcolor приведены в таблице 12.
Таблица 12
Цвет
Черный
Синий
Зеленый
Бирюзовый
Красный
Сиреневый
Коричневый
Светло-серый
Серый
Голубой
Светло-зеленый
Светло-бирюзовый
Алый
Светло-сиреневый
Желтый
Белый (яркий)
Константа
BLACK
BLUE
GREEN
CYAN
RED
MAGENTA
BROWN
LIGHTGRAY
DARKGRAY
LIGHTBLUE
LIGHTGREEN
LIGHTCYAN
LIGHTRED
LIGHTMAGENTA
YELLOW
WHITE
26
Значение константы
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Параметры функции setfillstyle приведены в таблице 13.
Таблица 13
Константа
EMPTY_FILL
SOLID_FILL
LINE_FILL
LTSLASH_FILL
Стиль заполнения области
Без заливки (сплошная заливка цветом фона)
Сплошная заливка текущим цветом
Горизонтальная штриховка
Штриховка под углом 45 градусов влево тонкими
линиями
Штриховка под углом 45 градусов влево
Штриховка под углом 45 градусов вправо тонкими
линиями
Штриховка под углом 45 градусов вправо
Штриховка клеткой
Штриховка под углом 45 градусов редкой косой
клеткой
Штриховка под углом 45 градусов частой косой
клеткой
Заполнение редкими точками
Заполнение частыми точками
Тип заполнения определяется программистом
SLASH_FILL
BKSLASH_FILL
LTBKSLASH_FILL
HATCH_FILL
XHATCH_FILL
INTERLEAVE_FILL
WIDEDOT_FILL
CLOSEDOT_FILL
USER_FILL
Параметры функции setlinestyle приведены в таблице 14.
Таблица 14
Константа
SOLID_LINE
CENTER_LINE
DASHED_LINE
Тип линии
Сплошная, непрерывная
Штрихпунктирная линия
Пунктирная, длина штрихов чуть больше, чем
линии типа DOTTED_LINE
Определенный программистом тип линии
USERBIT_LINE
Параметры функции settextstyle приведены в таблице 15.
Таблица 15
Константа
DEFAULT_FONT
Значение
0
TRIPLEX_FONT
SMALL_FONT
SANSSERIF_FONT
GOTHIC_FONT
1
2
3
4
Шрифт
Стандартный. Каждый выводимый
символ формируется в квадрате
размером 8 на 8 пикселов.
Шрифт Triplex
Мелкий
Шрифт SansSerif
Готический
27
3 ПРОГРАММНЫЕ СРЕДЫ КОНЕЧНОГО ПОЛЬЗОВАТЕЛЯ
3.1 Текстовые редакторы
Инструментальные средства подготовки текстовых документов
служат для разработки документов различной степени сложности, научных
статей, книг и т. д.
Можно выделить несколько этапов обработки документов:
− ввод текста,
− редактирование,
− сохранение документа,
− поиск и открытие созданного документа.
Редакторы текстов обеспечивают ввод, изменение и сохранение
любого символьного текста.
Ввод текста может осуществляться несколькими разными
способами:
− набором текста на клавиатуре,
− переводом бумажных документов в электронную форму,
− голосовым вводом,
− рукописным вводом.
Для современных текстовых редакторов характерно выполнение
следующих функций:
− автоматизированное форматирование документа на основе стилей,
− работа с документом в режиме исправлений, обеспечивающем
возможности последующей отмены или подтверждения каждого
изменения, проверка орфографии и автоматическое разделение слов при
переносе,
− структурное проектирование документа,
− создание формульных выражений и таблиц,
− возможность встраивания и редактирования графических изображений,
− работа с электронной почтой.
Наибольшую актуальность в процессе подготовки текстового
документа приобретает организация интерфейса пользователя.
Существующие в настоящие время системы подготовки текстовых
документов значительно отличаются друг от друга характеристиками,
способами ввода и редактирования текста, его форматирования и вывода
на печать, а так же степенью сложности освоения пользователем.
28
3.2 Табличные процессоры
Табличными процессорами называются пакеты программ,
предназначенные для создания электронных таблиц и манипулирования
данными.
Особенностью табличных процессоров или электронных таблиц
является то, что в них структурирование информации начинается
непосредственно на этапе ввода данных: с самого начала своего
существования в машинной форме они привязываются к структурным
подразделениям таблиц – ячейкам.
Основное назначение процессоров электронных таблиц – обработка
таблично организованной информации, проведение расчетов на ее основе
и обеспечение визуального представления хранимых данных и результатов
их обработки.
Табличные процессоры выполняют следующие функции:
− использование в таблицах сложных формул, содержащих функции
различного назначения,
− организация связей нескольких таблиц,
− создание сводных таблиц,
− выполнение автоматизированного поиска,
− обеспечение защиты данных,
− структурирование данных,
− использование автозаполнения ячеек таблицы.
Основным объектом табличного процессора является рабочая книга,
которая сохраняется как целостный объект в едином файле имеющим по
умолчанию расширение *.xls. Книга делится на листы, а листы, в свою
очередь – на ячейки.
В некоторых случаях логика работы с данными требует задания
ссылок между
несколькими рабочими книгами. Получающаяся в
результате связанная совокупность книг обычно называется рабочим
пространством или рабочей средой.
Главное окно Excel содержит следующие элементы:
− строка меню,
− панели инструментов,
− строка ввода данных,
− окно адреса активной (текущей) ячейки,
− линейки прокрутки.
Панели инструментов содержат значки, кнопки, раскрывающиеся
списки, благодаря которым возможен быстрый доступ к часто
используемым командам и настройкам. В строке ввода данных
отображается содержимое активной ячейки. Строка состояния отображает
29
сведения о выбранной команде или выполняемой операции, а также
справочную информацию о включенных функциональных клавишах.
Для хранения данных различных типов служат ячейки. Каждая
ячейка имеет уникальный адрес. Интервалом (блоком, диапазоном) ячеек
называется прямоугольная область смежных или несмежных ячеек.
Интервал задается указанием адреса верхней левой и правой нижней ячеек,
разделенных символом двоеточие.
Для выполнения вычислений над данными используются формулы.
Формулы состоят из операндов и начинаются с символа «=». В качестве
операндов используются числа, логические значения, ячейки, встроенные
функции, которые соединяются с помощью символов операций –
сложения, вычитания, умножения, деления, возведения в степень.
В процессорах электронных таблиц поддерживается система
относительных и абсолютных ссылок. Абсолютной ссылкой называется не
изменяющийся при копировании и перемещении формулы адрес ячейки,
содержащий исходные данные (в качестве признака абсолютной ссылки в
адресе используется знак $). Различают полную абсолютную ссылку (при
перемещении адрес ячейки не меняется) и частичную абсолютную ссылку
(при перемещении остается неизменной только одна из координат).
Существует возможность осуществлять графическое представление
хранимой информации с помощью процессоров электронных таблиц. Для
этого используются внедренные диаграммы и диаграммы в формате
полного экрана.
3.3 Основы работы с системой MATLAB
MATLAB - одна из старейших и тщательно проработанных систем
автоматизации математических расчетов. MATLAB является расширяемой
системой, и ее легко можно приспособить к решению различных классов
задач. Своим названием (MATrix LABoratory – «матричная лаборатория»)
система MATLAB обязана ориентации на матричные и векторные
вычисления.
Система MATLAB специально создана для проведения инженерных
расчетов: математический аппарат системы приближен к современному
математическому аппарату инженера и ученого и опирается на вычисления
с векторами, матрицами, действительными и комплексными числами;
графическое представление функциональных зависимостей организовано в
форме, требуемой инженерной документацией.
Система MATLAB позволяет выполнять ряд команд и операторов.
Под командами понимаются средства, управляющие периферийным
30
оборудованием, под операторами – средства, выполняющие операции с
данными (операндами).
Команды и операторы могут выполняться как из программы, так и в
режиме прямых вычислений.
Работа с системой в режиме прямых вычислений носит диалоговый
характер. Вычисляемое выражение вводится путем набора на клавиатуре и
нажатия клавиши ENTER. При этом действует простейший строчный
редактор. Его команды:
→
- перемещение курсора вправо на один символ,
←
- перемещение курсора влево на один символ,
ctrl → - перемещение курсора вправо на одно слово,
ctrl ← - перемещение курсора влево на одно слово,
home
- перемещение курсора в начало строки,
end
- перемещение курсора в конец строки,
↑и↓
- перелистывание строк вверх или вниз,
del
- стирание символа, на котором установлен курсор,
←
- стирание символа слева от курсора (back space),
ins
- включение / выключение режима вставки.
-
Важными командами системы являются:
HELP - помощь,
DEMO - демонстрация,
INFO - информация.
MATLAB содержит несколько системных переменных, в том числе:
pi - число "пи",
inf - значение машинной бесконечности,
ans - переменная, хранящая результат последней операции.
В арифметических выражениях применяются следующие знаки
операций:
+
- сложение,
- вычитание,
*
- умножение,
/
- деление слева направо,
\
- деление справа налево,
^
- возведение в степень.
Поэлементные операции имеют вид:
.<знак операции>
Для задания переменных в системе MATLAB используется операция
присваивания, вводимая знаком:
Имя_переменной = Выражение.
Если запись оператора не заканчивается символом «;», результат
выводится в командное окно, в противном случае результат не выводится.
31
Если оператор не содержит знака присваивания «=», то значение
результата присваивается системной переменной ans.
При работе с числовыми данными можно задавать различные
форматы представления чисел (при этом все вычисления проводятся с
предельной, так называемой двойной точностью). Для установки формата
представления чисел используется команда «format name», где «name» –
имя формата. Команда «format» может устанавливать следующие режимы
вывода:
format
- аналогично format short и устанавливается по умолчанию,
format short
- формат с фиксированной точкой с 5 знаками,
format short e - формат с плавающей точкой с 5 знаками,
format long
- формат с фиксированной точкой с 15 знаками,
format long e - формат с плавающей точкой с 15 знаками,
format hex
- шестнадцатеричный формат,
format +
- компактный формат, "+", "-" и "пробел" служат для
отображения положительных, отрицательных и нулевых
элементов, мнимая часть игнорируется,
format bank
- фиксированный формат для денежных единиц,
format compact - формат с подавлением перевода строки,
format loose - формат, обратный format compact,
Система MATLAB работает как с действительными, так и с
комплексными числами вида z = Re( z) + i ∗ Im(z) , где i (или j) – мнимая
единица; то есть квадратный корень из –1, Re(z) – действительная часть
комплексного числа z, а Im(z) – его мнимая часть.
Система MATLAB позволяет вычислять различные математические
функции. Следующие элементарные алгебраические функции имеют в
качестве аргумента одно или два действительных (x, y) или одно
комплексное (z) число:
abs(z)
- вычисление модуля комплексного числа z или абсолютного
значения действительного числа z,
angle(z)
- вычисление аргумента z,
sqrt(z)
- вычисление квадратного корня,
real(z)
- вычисление действительной части z,
imag(z)
- вычисление мнимой части z,
round(z)
- округление до целого,
fix(z)
- округление до ближайшего целого в сторону нуля,
floor(z)
- округление до ближайшего целого в сторону отрицательной
бесконечности,
sign(z)
- вычисление функции знака,
rem(x, y)
- вычисление остатка от деления x на y,
exp(z)
- вычисление е в степени z,
log(z)
- вычисление натурального логарифма числа z,
log10(z)
- вычисление десятичного логарифма числа z.
32
Система MATLAB предоставляет возможности для вычисления
следующих тригонометрических и обратных тригонометрических
функций:
sin(z)
cos(z)
tan(z)
asin(z)
acos(z)
atan(z)
atan2(y, x)
- вычисление синуса,
- вычисление косинуса,
- вычисление тангенса,
- вычисление арксинуса,
- вычисление арккосинуса,
- вычисление арктангенса,
- вычисление арктангенса по координатам точки.
MATLAB – система, специально предназначенная для проведения
сложных вычислений с векторами, матрицами и многочленами.
При вводе значения векторов и матриц перечисляются в квадратных
скобках. Для разделения столбцов используются пробелы, для разделения
строк - знак «;». Система MATLAB дает возможность ввода вектора,
значения которого являются арифметической прогрессией:
<Имя>=<НЗ>:<Ш>:<КЗ>
где <НЗ> - начальное значение прогрессии, <Ш> - разность прогрессии,
<КЗ> - конечное значение.
Также возможен ввод элементов векторов и матриц в виде
арифметических выражений, содержащих любые доступные системе
функции.
Матрицы можно расширять, используя матрицы малых размеров, как
элементы матриц больших размеров.
Генерацию некоторых наиболее распространенных видов матриц
обеспечивают следующие матричные функции:
zeros(m,n) − генерация матрицы с нулевыми элементами,
ones(m,n)
− генерация матрицы с единичными элементами,
rand(m,n)
− генерация матрицы с элементами, имеющими случайные значения,
eye(m,n)
− генерация матрицы с единичными диагональными элементами,
(m – количество строк, n – количество столбцов матрицы).
Матрицу можно свести к нулевой размерности, используя
выражение вида:
имя_матрицы = [].
При этом имя матрицы сохраняется и в дальнейшем ее можно
расширить и использовать. Уничтожение матрицы осуществляется с
помощью команды:
clear имя_матрицы.
33
Выделение элементов матрицы (а) производится с помощью
команд:
a(i,j)
a(i,:)
a(:,j)
−
−
−
выделение элемента i–й строки j –го столбца,
выделение i–й строки,
выделение j–го столбца.
В MATLAB возможны следующие операции с векторами и
матрицами:
+
- сложение,
- вычитание,
*
- умножение,
\/
- деление,
'
- транспонирование,
^
- возведение в степень,
inv(m)
- обращение матрицы,
pinv(m)
- псевдообращение матрицы,
sqrtm(m) - матричный квадратный корень.
poly(m)
- вектор с коэффициентами характеристического многочлена
матрицы,
det(m)
- значение определителя матрицы,
trace(m)
- след матрицы,
rank(m)
- ранг матрицы.
Система MATLAB имеет ряд функций, предназначенных для
обработки данных, заданных в матричной или векторной форме. Функция
size (m) служит для определения числа строк и столбцов матрицы m. Она
возвращает вектор [n, p], содержащий эти данные. Функция max(v)
возвращает значение максимального по значению элемента вектора v. Если
ее аргументом является матрица, например max(m), то функция
возвращает вектор-строку, содержащий значения максимальных элементов
каждого из столбцов. Аналогично действует функция min(m), выделяющая
элементы с минимальными значениями. Функция mean(v) возвращает
среднее значение элементов вектора v, а функция mean(m) с матричным
аргументом возвращает вектор-строку средних значений каждого из
столбцов данных. Функция std(v) возвращает статистический параметр –
стандартное (квадратичное) отклонение для одномерного массива данных,
представленного вектором v. В случае матричного аргумента эта функция
возвращает вектор-строку стандартных отклонений для каждого из
столбцов. Функция сортировки sort(v) возвращает вектор, элементы
которого расположены в порядке роста их значений. Для матричного
аргумента эта функция возвращает матрицу, у которой отсортированы
элементы каждого столбца. Функция sum(v) возвращает сумму элементов
вектора v, а для матричного аргумента функция sum(m) возвращает
34
вектор-строку сумм элементов по каждому из столбцов. Аналогично
функция prod(m) возвращает вектор произведений элементов каждого из
столбцов.
Программирование в системе MATLAB является эффективным
средством ее расширения и адаптации к решению специфических задач
пользователя. Оно реализуется с помощью входного языка системы,
который является языком высокого уровня и содержит сложные операторы
и функции.
Для записи программ в MATLAB часто используются m-файлы –
последовательности операторов, оформленные в виде файлов, имеющих
расширение .m. Сценариями называются m-файлы, содержащие
последовательности команд. Функциями называются m-файлы, имеющие в
первой строке указание "function". Описание функций начинается со
строки заголовка:
function [<перчень конечных величин>] =
<имя процедуры>(<перечень входных величин>).
В файлах-функциях все имена переменных внутри файла, а также имена
переменных, указанные в заголовке, воспринимаются как локальные, то
есть все значения этих переменных после завершения работы процедуры
исчезают, и область оперативной памяти компьютера, которая была
отведена под запись значений этих переменных, освобождается для записи
в нее значений других переменных. В файлах-сценариях все используемые
переменные образуют «рабочее пространство». Их значения сохраняются в
течение всего сеанса работы с системой.
Ввод исходных данных в программе может осуществляться с
помощью операций присваивания, с клавиатуры и из файлов, хранимых на
диске.
Для операций присваивания используются конструкции:
Имя_переменной = Числовое выражение
Имя_переменной = ‘Строка символов’
Для организации диалогового ввода и вывода используются
следующие операторы:
Оператор
INPUT
DISP
Синтаксис
Назначение
X=input(‘<приглашение>’)
для ввода данных с клавиатуры
disp(<переменная или текст в для вывода на дисплей
апострофах>)
Для организации ветвлений служат условные операторы
Конструкции условных операторов:
1).
if <условие>
<операторы>
end
(операторы выполняются только в том случае, если условие истинно).
35
2).
if <условие>
<операторы 1>
else
<операторы 2>
end
3).
if <условие1>
<операторы 1>
elseif <условие2>
<операторы2>
elseif <условие3>
<операторы3>
.
.
.
else
<операторы>
end
В системе
сравнения:
<
<=
>
>=
=
~=
&
|
~
MATLAB могут применяться следующие операторы
-
меньше,
меньше или равно,
больше,
больше или равно,
равно,
не равно.
В MATLAB возможно выполнение логических операций:
- логическое «и» (and),
- логическое «или» (or),
- логическое отрицание (not).
Результатом логических операций являются числа 0(false) и 1(true).
В системе MATLAB есть две разновидности операторов цикла –
условный и арифметический.
Для повторения операторов нефиксированное число раз
используется оператор цикла с предусловием:
while <условие>
<операторы>
end
Операторы выполняются, если переменная "условие" имеет ненулевые
элементы.
Арифметический оператор цикла имеет вид:
for <имя> = <НЗ>: <Ш>: <КЗ>
<операторы>
end
36
где <имя> – имя управляющей переменной цикла, <НЗ> – начальное
значение управляющей переменной и <КЗ> – конечное значение
управляющей переменной. Значение <Ш> задает приращение значений
переменной <имя> в ходе ее изменения от значения <НЗ> до значения
<КЗ>. Если параметр <Ш> не указан, по умолчанию его значение
принимается равным единице.
Для работы с файлами и данными в оперативной памяти
компьютера служат следующие команды:
dir
- отображение файлов, хранящихся в текущем каталоге,
chdir - смена текущего каталога,
what - вывод имен М-файлов, содержащихся на диске,
type
- вывод на экран листинга текстового файла,
diary - установка режима записи в файл,
delete - удаление файла,
save
- сохранение переменных в файл,
load
- загрузка переменных из файла,
who
- вывод списка текущих переменных,
whos - вывод значений переменных,
clear - удаление переменных и функций,
quit
- выход,
!
- переход во внешнюю среду.
Для графического представления результатов вычислений в
MATLAB используется набор специальных команд. Основные операторы
графики:
plot
- построение графика в линейном масштабе;
loglog
- построение графика в логарифмическом масштабе;
semilogx - построение графика в полулогарифмическом масштабе (log
по оси x);
semilogy - построение графика в полулогарифмическом масштабе (log
по оси y);
polar
- построение графика в полярной системе координат;
mesh
- построение графика трехмерной поверхности;
contour - построение графика с контурными линиями – уровнями
равных высот;
bar
- построение графика столбцовой гистограммы;
stairstep - построение графика в виде ступенчатой линии.
Для оформления графиков служат следующие операторы:
text
- вывод надписи в заданное место графика;
title
- задание титульной надписи;
xlabel
- задание надписи по оси x;
ylabel
- задание надписи по оси y;
grid
- задание пунктирной масштабной сетки.
37
При программировании графических операций используются
операторы:
axis(<масштаб>)
- задание построения осей с заданным масштабом;
hold
- сохранение предшествующих построений;
subplot(m,n,p)
разбивка окна на меньшие окна (m – количество окон
по вертикали, n – по горизонтали, p – номер подокна).
Являясь расширяемой системой, MATLAB может использоваться
для решения различных классов инженерных задач, математического
моделирования, обработки результатов эксперимента и визуализации
данных.
Библиографический список
1. Березин Б.И., Березин С.Б. Начальный курс С и С++. М.: ДиалогМИФИ, 2000. 288 с.
2. Вильховченко С. Современный компьютер: устройство, выбор,
модернизация. СПб, Издательство «Питер», 2000, 512с.
3. Дьяконов В.П. Справочник по применения системы PC MATLAB. М.:
Физматлит, 112с.
4. Касаткин А.И., Вальвачев А.Н. Профессиональное программирование
на языке Си: от Turbo C к Borland C++. Мн.: Выш.шк., 1992. – 240 с.
5. Нортон П., Сандлер К, Баджет Т., Персональный компьютер изнутри.
М.: БИНОМ, 1995, 448с.
6. Конев В.Ю., Мироновский Л.А. Основные функции системы MATLAB:
Учеб. пособие. 2-е издание./СПбГААП.СПб.,1994. 76с.
7. Культин Н.Б. С/С++ в задачах и примерах. СПб.: БХВ-Петербург, 2002.
288с.
8. Павловская Т.А., Щупак Ю.А. С/С++. Структурное программирование:
Практикум. СПб, Издательство «Питер», 2003, 240с.
9. Потемкин В.Г. Система MATLAB: Справ. пособие. М.: Диалог-МИФИ,
1997. 350 с.
10. Прокушев Л.А. Программирование на языке высокого уровня.
Методические указания к выполнению лабораторных работ. СПб,
СПГУАП, 2002. 68с.
38
СОДЕРЖАНИЕ
Предисловие
1 Аппаратное и программное обеспечение компьютерной
техники........................................................................................
1.1 Основные блоки компьютера…………………………......
1.2 Устройства ввода информации……………………………
1.3 Устройства вывода информации……………………….....
1.4 Программное обеспечение компьютерной техники…......
2 Основы языков программирования С/С++…………………
2.1 Описание языков программирования С/С++......................
2.2 Структура программы на С/С++ .........................................
2.3 Представление данных в С/С++ ..........................................
2.4 Ввод и вывод в С/С++ ..........................................................
2.5 Операции в С/С++ ................................................................
2.6 Операторы ветвления ...........................................................
2.7 Операторы цикла ..................................................................
2.8 Массивы и строки .................................................................
2.9 Структуры в С/С++ ...............................................................
2.10 Работа с файлами в С/С++ .................................................
2.11 Использование функций в С/С++ .....................................
2.12 Функции графического режима С/С++.............................
3. Программные среды конечного пользователя.....................
3.1 Текстовые редакторы............................................................
3.2 Табличные процессоры
3.3 Основы работы с системой MATLAB.................................
Библиографический список........................................................
39
3
4
4
4
6
7
8
8
9
10
11
14
15
16
17
18
19
20
22
28
28
29
30
38
Учебное издание
Анодина-Андриевская Е. М.
ОСНОВЫ
КОМПЬЮТЕРНЫХ
ТЕХНОЛОГИЙ
Учебное пособие
___________________________________________________________________________
Подписано в печать 14.02.06. Формат 60х841/16. Бумага офсетная. Печать офсетная.
Усл. печ. л. 2,5. Уч.-изд. л. 2,0. Тираж 100 экз. Заказ № 144.
Отпечатано с оригинал-макета, подготовленного автором
Отдел оперативной полиграфии
ГУАП
190000, Санкт-Петербург, ул. Б. Морская, 67
40
Документ
Категория
Без категории
Просмотров
1
Размер файла
568 Кб
Теги
andrievckaya, andonina
1/--страниц
Пожаловаться на содержимое документа