Тема 1. Хранение информации.
Тема 1. Хранение информации.
1. Хранение информации. Назначение программ архивации.
Одной из проблем, с которой приходится сталкиваться пользователю компьютера, является нехватка памяти для долговременного хранения информации. Каким бы большим ни был объем памяти жесткого диска, он может оказаться недостаточным для установки новой игры или хранения фильмов. Еще одна проблема — передача большого объема данных по компьютерной сети.
Уменьшить объем сохраняемых на диске или передаваемых по сети данных можно путем их архивации. Архивацией (сжатием, компрессией) называют преобразование данных в сжатую (архивную) форму.
Для сжатия данных и размещения их в архивах используют программы-архиваторы. Архивный файл (или просто архив) хранит в сжатом виде файлы и папки, которые при необходимости могут быть извлечены из архива в первоначальном виде.
2. Хранение информации. Создание архивных файлов. Извлечение файлов из архива.
Тема 2. Цифровые устройства для обработки информации
3. Цифровые устройства для обработки информации. Цифровые устройства. Совместное использование цифровых устройств и компьютера.
Тема 3. Основы алгоритмизации и программирования
4. Основы алгоритмизации и программирования. Алфавит и словарь языка Pascal. Константы и переменные. Типы данных.
Константы и переменные
Константами называют данные, значения которых установлены в описательной части программы и в процессе выполнения программы не изменяются. Они задаются пользовательскими идентификаторами. Константы "узнаются" компьютером по форме их записи. В языке Pascal используются константы трех видов:
· числовые,
· булевские (логические),
· символьные или строковые.
Числовые константы предназначены для представления числовых данных (целых и вещественных). Булевские константы используются для представления данных, имеющих смысл логических высказываний (да-нет, истина-ложь). Символьные константы представляют данные, являющиеся последовательностями символов.
Пример:
Const
Name=’Вася’;
DR=’29 февраля 1996г.’;
Max=1000;
Min=0;
Center=(max-min)/2;
Преимущество задания какого-либо постоянного значения в виде константы, а не переменной, в том, что при этом блокируется возможность его случайного изменения (например, в результате ошибки программиста).
В Паскале имеется ряд констант, к значениям которых можно обращаться без предварительного определения. Их называют зарезервированными константами (true, false, maxint, pi).
Переменными называют величины, которые могут менять свое значение в процессе выполнения программы. С каждой переменной программы связывается ее характеристика, называемая типом.
Var
A, b:integer;
Summa:real;
Кроме констант и переменных существуют типизированные константы. Данные этого типа описываются в разделе const, но для них должен указывается тип.
Const
Ocenka: byte=5:
Predmet: string=’Химия’;
Типизированная константа равнозначна переменной с заранее инициализированным значением, и в программе действия с ней могут производится также как с переменной.
Типы данных
Тип данных определяет структуру данных, множество допустимых значений данных, а также совокупность операций над ними.
Типы данных |
Простые (скалярные) |
Сложные (составные, структурированные) |
Множества |
Записи |
Массивы |
Файлы |
Фиксированные |
Вариантные |
Текстовые |
Типизированные |
Нетипизированные |
Вещественные |
Строковые |
Порядковые |
Стандартные |
Определенные пользователем |
Целые |
Логические |
Символьный |
Перечисляемые |
Диапазонные |
Рис.1. Классификация типов данных |
К простым типам данных относятся:
· Типы, определенные в языке (стандартные типы): вещественные, целые, логические, символьные, строки;
· Типы, определенные пользователем: перечисляемые и диапазонные (интервальные).
Вещественные типы данных
К вещественным типам данных, используемых в языке Паскаль, относятся: real, single, double, extended, comp. Они отличаются друг от друга диапазонами допустимых значений (т.е. значениями, которые могут принимать переменные этих типов). Для хранения переменных того или иного вещественного типа требуются различные объёмы памяти.
Таблица3.Характеристика вещественных типов данных.
Вещественный тип | Диапазон значений | Число значащих цифр мантиссы | Требуемая память (байт) |
real | 2.9Е-39..1.7Е38 | 11-12 | |
single | 1.5Е-45..3.4Е38 | 7-8 | |
double | 5.0Е-324..1.7Е308 | 15-16 | |
extended | 1.9Е-4951..1.1Е4932 | 19-20 | |
comp | -2Е+63+1..2Е+63-1 | 19-20 |
Все вещественные числа могут записываться с фиксированной и плавающей точкой. С фиксированной точкой числа записываются по правилам арифметики, только целые части отделяются точкой.
Числа в форме с плавающей точкой записываются в виде:
mE+p,
где m – мантисса,
E – экспонента,
p – показатель степени.
Применяемые операции: +, -, /, *, операции сравнения - =, <=, >=, <, >, <>.
К переменным и константам, принадлежащим вещественному типу, применимы все математические функции:
Abs | Возвращает абсолютную величину параметра |
Sin, Cos, ArcTan | Возвращает соответственно синус, косинус и арктангенс параметра |
Exp | Возвращает экспоненту параметра |
Int, Frac | Возвращают соответственно целую и дробную части параметра |
Ln | Возвращает натуральный логарифм параметра |
Pi | Возвращает значение Пи=3,1415926535897932385 |
Sqr, Sqrt | Возвращают соответственно квадрат и квадратный корень параметра |
Помимо математических функций к переменным и константам, принадлежащим вещественному типу, применимы две функции преобразования типов:
Round | Округляет (согласно правилам округления) значение вещественного типа до ближайшего значения целочисленного типа |
Trunc | Превращает значение вещественного типа в целочисленное значение путем отбрасывания дробной части |
Символьный тип данных
В Паскале принят единственный стандартный символьный тип данных – Char. Переменные этого типа предназначены для хранения отдельных символов – букв, цифр и специальных знаков.
Применяемые операции: операции сравнения - =, <=, >=, <, >, <>.
К переменным и константам символьного типа применимы процедуры и функции для работы с порядковыми типами Dec, Inc, Pred, Succ.
К символьным переменным и значениям также применимы некоторые функции преобразования типов High, Low, Ord, UpCase.
Ord | Возвращает порядковый номер значения, принадлежащего одному из порядковых типов |
UpCase | Преобразует аргумент (значение типа Char) в соответствующий символ верхнего регистра. Обрабатывает буквы только латинского алфавита. |
Логический тип данных
В Паскале принят логический тип данных – Boolean. Переменные и константы этого типа принимают одно из двух значений – TRUE и FALSE, которые также могут быть представлены в виде двоичных цифр 1 и 0.
Применяемые операции: операции сравнения - =, <=, >=, <, >, <>.
К логическим значениям также применимы логические операции:
Обозначение операции | Выполняемое действие |
AND (И) | Логическое умножение |
OR (ИЛИ) | Логическое сложение |
XOR (исключающее ИЛИ) | Сложение по модулю 2 |
NOT (НЕ) | Логическое отрицание |
Таблица 5. Результаты применения логических операций
Значения | Операции | ||||
A | B | A and B | A or B | A xor B | Not A |
False | False | False | False | False | True |
False | True | False | True | True | True |
True | False | False | True | True | False |
True | True | True | True | False | False |
К переменным и константам логического типа применимы все процедуры и функции для работы с порядковыми типами, а также некоторые функции преобразования типов High, Low, Ord.
Строковый тип данных
Этот тип занимает промежуточное положение между простыми и структурированными типами данных. Он используется для обработки текстов. Определяется строковый тип в виде string [n],где 1<n<255.
Значения типа string можно вводить с клавиатуры и отображать на экране с помощью единственного оператора:
Read (a); Write (a);
Можно всей строке (т.е. строковой переменной) сразу присвоить нужное значение:
A:=’Привет!’;
B:=’’;
Для строк допустима операция объединения (или сцепления, или конкатенации):
А:='Хорошая'+'погода'; в результате А='Хорошая погода'
Операцию объединения можно применить не только к явно заданным значениям, но и к переменным типа string:
А:=В+С;
К строкам также применимы операции сравнения: =, <=, >=, <, >, <>.
В Паскале имеются процедуры и функции, специально предназначенные для работы со строками:
Concat (S1,S2,…Sn) | Выполняет сцепление строк S1,S2,…Sn в одну строку в том порядке, в каком они указаны |
Copy (St,Poz,N) | Выделяет из строки St, начиная с позиции Poz подстроку длиной N символов. |
Delete (St,Poz,N) | Удаляет N символов строки St, начиная с позиции Poz. |
Insert (S1,S2,Poz) | Вставка строки S1 в строку S2, начиная с позиции Poz. |
Length (S) | Возвращает текущую длину строки S. |
Pos (S1,S2) | Определяет первое появление в строке S2 подстроки S1. Результат равен номеру той позиции, где находится первый символ подстроки S1. |
Str (N,St) | Преобразование числового значения N в строковый и помещает результат в строку St |
Val (St,N,Code) | Преобразует значение St в величину целочисленного или вещественного типа и помещает результат в N. Code – целочисленная переменная. Если во время операции преобразования ошибки не обнаружено, Значение Code равно 0, если же обнаружена ошибка, то Code будет содержать номер позиции первого ошибочного символа, а значение N не определено. |
Структура программы
Программа реализует алгоритм решения задачи. В ней записывается последовательность действий, выполняемых над определенными данными для реализации заданной цели. Основными характеристиками программы являются: точность полученного результата время выполнения и объем требуемой памяти.
Программа на языке Pascal состоит из заголовка, раздела описаний и раздела операторов.
PROGRAM Imya; Заголовок программы
Uses - раздел подключения модулей
label - раздел меток
const - раздел констант
type - раздел типов Раздел описаний
var - раздел переменных
procedure - раздел процедур
function - раздел функций
BEGIN
Оператор 1;
Оператор 2; Раздел операторов
... (тело программы)
Оператор n
END.
Заголовок содержит служебное слово PROGRAM, имя программы, задаваемое программистом, и в круглых скобках имена стандартных процедур Input, Output для связи программы с внешними устройствами ввода-вывода. Заканчивается заголовок символом ";" (точка с запятой).
Раздел описаний предназначен для объявления всех встречающихся в программе данных и их характеристик (имена данных, их тип, возможные значения). Этот раздел содержит следующие подразделы: раздел подключения стандартных и пользовательских модулей, объявление меток, констант, типов, переменных, объявление процедур и функций. Порядок расположения разделов не важен и описания могут повторяться.
Объявление процедур и функций является одним разделом. Следует заметить, что не все перечисленные разделы обязательны в программе. В простых программах могут потребоваться, например, только разделы описания констант и переменных.
После каждого описания ставится символ ";".
Раздел операторов ("тело" программы) заключается в операторные скобки вида: BEGIN ("начать") и END ("окончить"), при этом после служебного слова END Обязательно ставится точка. В разделе операторов записывается последовательность исполняемых операторов и каждый выражает действие, которое необходимо выполнить. Исполняемые операторы отделяются друг от друга символом ";".
Для создания наглядных и легко читаемых программ необходимо следовать следующим правилам:
1) Стандартизация стиля программирования заключается в том, что необходимо всегда придерживаться одного способа записи текста программы.
2) Для четкого указания вложенности управляющих структур требуется особым образом располагать операторы в тексте, так что служебные слова, которыми начинается и заканчивается, тот или иной оператор, записываются на одном уровне, а все вложенные в него операторы записываются с отступом вправо. При записи конструкций языка более глубоких уровней вложенности следует сдвигать их от начала строки вправо. Каждое описание и каждый оператор следует писать с новой строки. Продолжение описаний и операторов на новые строки надо сдвигать вправо. Следует избегать длинных строк.
3) Рекомендуется любую программу сопровождать комментариями, поясняющими назначение всей программы и отдельных ее блоков, процедур, функций.
4) Имена для объектов программы надо выбирать так, чтобы они наилучшим образом соответствовали этим объектам, отражали их назначение.
5) Списки идентификаторов в блоках описания следует упорядочивать - это облегчает поиск в них нужных элементов.
6) Программирование сверху вниз. В процессе разработки алгоритма и программы следует начинать с самой общей модели решения, постепенно уточняя ее до уровня отдельного блока и затем детально прорабатывая каждый блок.
Комментарии
Комментарии – это текстовые строки, вставляемые в тексте программы для пояснения функций отдельных ее частей и не влияющие на процесс ее выполнения. Ограничиваются комментарии двух сторон фигурными скобками или вместо открывающейся фигурной скобки применяют пару символов (*, а вместо закрывающейся скобки – пару символов *). Текст комментария может содержать любое количество латинских и русских букв, цифр и других символов алфавита языка Паскаль. Ограничений на длину комментария нет, он может занимать несколько строк.
В тексте комментария не должно быть знаков ограничителей, с которых начинается комментарий. Например: {Пример{1} задания{4}}. Однако ограничители {} могут быть вложены в (* *), и наоборот.
Например: (*Пример{1} задания{4}*)
{Пример(*1*) задания(*4*)}
Комментарии игнорируются компилятором и поэтому не оказывают никакого влияния на программу.
По месту расположения в программе комментарии можно разделить на 4 класса:
o объясняющие назначение программы,
o поясняющие смысл идентификаторов переменных и констант,
o описывающие логически обособленные части программы,
o объясняющие сложные для понимания элементы алгоритма.
Комментарии удобно использовать при отладке программы. В процессе отладки часто требуется исключить выполнение какой-либо части программы.
6. Основы алгоритмизации и программирования. Операторы языка Pascal: простые, структурированные, операторы ввода-вывода.
Операторы языка Паскаль разделяются на две группы: простые и структурированные. Простые операторы не содержат в себе других операторов; структурированные включают в себя другие операторы – как простые так и структурированные.
К простым операторам относятся:
· Оператор присваивания;
· Оператор безусловного перехода (GOTO);
· Пустой оператор.
· Операторы ввода и вывода.
К структурированным операторам относятся:
· Составной операторы (begin..end);
· Условные операторы (IF и CASE);
· Операторы цикла (While, repeat, For).
Простые операторы
Оператор присваивания.
Знак присваивания делит этот оператор на две части. В правой части представлено выражение, состоящее из идентификаторов констант, переменных, функций и знаков операций, которое необходимо вычислить. После вычисления полученное выражение присваивается переменной, указанной в левой части оператора. При этом тип переменной должен быть совместим с типом вычисленного выражения.
Оператор безусловного перехода (GOTO).
Представляет собой простой оператор, используя который можно изменять порядок выполнения операторов в программе. Общий вид оператора безусловного перехода:
GOTO р,
Где р – метка, которой помечен некоторый иной оператор в программе. Меткой может служить идентификатор или целое число (без знака) от 1 до 9999. Все метки, используемые в программе должны быть объявлены. Раздел описания меток обозначается зарезервированным словом LABEL. Если метка должна использоваться внутри процедуры или функции, она должна быть описана в ней. Передача управления снаружи внутрь процедуры или функции с помощью оператора перехода невозможна.
Применение оператора безусловного перехода является нежелательным, т.к. присутствие этого оператора в программе нарушает ее структурную целостность и наглядность.
Кроме оператора безусловного перехода в Паскале существуют безусловные функции: Exit и Halt.
Exit позволяет завершить работу текущего программного блока (самой программы, процедуры или функции).
Halt позволяет завершить работу программы.
Пустой оператор.
Пустой оператор не выполняет никаких действий, и в тексте программы он представлен символом «;».
Операторы ввода и вывода.
Ввод данных с клавиатуры
Процедура чтения Read обеспечивает ввод данных для последующей их обработки программой.
Общий вид: READ (<список переменных>);
Например: READ(a,b,c);
READ(d);
В списке перечисляются имена переменных. Значения этих переменных набираются через пробел на клавиатуре. После набора данных для одной процедуры Read нажимается клавиша ввода Enter. Значения переменных должны вводиться в строгом соответствии с синтаксисом языка Паскаль. Если соответствие нарушено, то возникают ошибки.
Процедура чтения READLN аналогична процедуре Read, единственное отличие в том, что после считывания последнего в списке значения курсор переходит на начало новой строки.
Readln;– происходит переход на новую строку без ввода данных(используется для приостановки выполнения программы, после нажатия клавиши ввода Enterпрограмма продолжает работу).
Вывод данных
Процедура вывода Write производит вывод данных.
Общий вид: WRITE(<список вывода>);
Write(V1[:W1[:D1]],…, Vn[:Wn[:Dn]]); W определяет ширину поля вывода, D – сколько знаков выводить после точки.
Writeln(V1[:W1[:D1]],…, Vn[:Wn[:Dn]]); – квадратные скобки используются для обозначения необязательных частей операторов.
WRITELN; осуществляет переход на новую строку без вывода данных
В списке вывода могут быть представлены выражения допустимых типов данных (integer, real, char и т.д.) и произвольный текст, заключенный в апострофы.
Например, Write(‘Привет’); Write(34.7); Write(45+55); Write(b, d);
Неформатированный вывод – Write(R). Если длина поля W не указана, то под каждое число отводится стандартная длина поля и числа печатаются в экспоненциальной форме. На экране будет:3.04550000000000Е+02 . Е+02 – степень равна 2.
В процедурах вывода Write и Writeln имеется возможность записи выражения, определяющего ширину поля вывода.
Форматированный вывод – Write(r:5:2). На экране будет выведено число в привычной нам форме: 304.55.
Процедура Writeln аналогична процедуре Write. Отличие в том, что после вывода последнего в списке выражения курсор переходит на начало новой строки.
Синтаксис процедуры Write и WriteLn:
Write (X,Y); или WriteLn (X,Y); - "Слепой" вывод значений переменных.
Write (X+Y); или WriteLn (X+Y); - Вывод результата выражения.
Write (X); или WriteLn (X); - Неформатированный вывод значения переменной.
Write (X:6:2); или WriteLn (X:6:2); - Форматированный вывод значения переменной.
Write ('Фраза'); или WriteLn ('Фраза'); - Вывод некоторой фразы на дисплей.
Write ('Фраза',Y); или WriteLn ('Фраза',Y); - Вывод фразы и значения переменной на экран, "неслепой" вывод значения переменной,
где:
1) X, Y - переменные, значения которых нужно вывести на экран;
2) 'Фраза' - некоторый пояснительный текст, который обычно сопровождает значение переменной;
3) X:6:2 - указывается формат значения переменной. Это значит, что всего 6 символов, отводится под значение переменной X, причем после десятичной точки будет выведено на экран 2 символа. Это так называемый форматированный вывод числа с фиксированной точкой.
Структурированные операторы
Составной оператор.
Представляет собой последовательность некоторых операторов, которые выполняются в том порядке в каком содержатся в тексте программы. При этом зарезервированные слова begin и end являются операторными скобками, в которые заключены операторы, входящие в составной оператор.
Составной оператор имеет вид:
Begin S1; S2; .., Sn end;
Где 1 – Sn – операторы, образующие составной оператор;
begin и end–операторные скобки.
Составной оператор может включать другие составные операторы, причем допускается любой уровень вложенности.
Условные операторы.
1. Оператор IF имеет вид:
If p then a1 else a2
При выполнении этого оператора сначала выполняется некоторое логическое выражение p (условие), в случае истинности которого выполняется оператор a1, а в случае ложности оператор a2.Ключевые слова If, then и else имеют смысл если, то и иначе.
Возможен сокращенный вариант оператора IF:
If p then a1
Если условие p истинно, выполняется оператор a1. Если условие p ложно, управление передается следующему (за оператором If) оператору в программе.
Условие представляет собой логическое значение TRUE или FALSE либо константу логического типа, имеющую одно из этих значений, либо переменную логического типа, либо один из операторов сравнения.
В Паскале допускается вложенность оператора IF.
2. Оператор CASE имеет вид:
Case p of
a: S1;
b: S2;
…
n: Sn
elseSn+1
end;
При выполнении этого оператора сначала вычисляется некоторое выражение p, называемое селектором выбора, а затем в зависимости от полученного значения (если оно равно одной из констант a, b, …, n, которые называются константами выбора), выполняется один из операторов: S1, S2,…, Sn, помеченные соответствующей константой. Если значение выражения p не совпадает ни с одной из констант выбора, выполняется оператор Sn+1, содержащийся после ключевого слова else, причем ветвь else в операторе Case необязательна. Использованные здесь зарезервированные слова Case, of, else, end имеют смысл вариант, из, иначе, конец.
Каждый из операторов в операторе Case, помеченный константой выбора может быть составным.
Выражение, играющее роль селектора, должно принадлежать порядковому типу данных (т.е. типу, имеющему конечное число значений). Например: Integer, Boolean, Char.
Кроме одиночных констант, в вариантах оператора Case могут использоваться диапазоны значений и списки.
Пример:
Case x of
1..5: S1;
2, 3, 8: S2;
4, 6, 9..13: S3
elseS4
end;
Операторы цикла.
Для многократного повторения одних и тех же действий в Паскале предусмотрены три оператора цикла. Если число повторений (или итераций) заранее не известно, но известно условие завершения цикла, в таких случаях применяются операторы REPEAT и WHILE. Если же число повторений известно, то используется оператор FOR.
1. Оператор WHILE – оператор цикла с предусловием, имеет следующий вид:
While p do s;
При выполнении этого оператора сначала вычисляется некоторое логическое выражение p (условие), принадлежащее типу Boolean, в случае истинности которого выполняется оператор s (являющийся, как правило, составным). После этого вычисление условия, его проверка и выполнение оператора S повторяются до тех пор, пока выражение p не становится равным FALSE. Затем управление передается следующему (после WHILE) оператору программы. Ключевые слова WHILE и DO имеют смысл пока и выполнять.
Если условие p равно FALSE с самого начала, оператор S называемый телом цикла, не выполнится ни разу. Если условие p тождественно TRUE цикл бесконечен. Для того чтобы тело цикла выполнилось насколько раз, значение условия каждый раз преобразовываться в теле цикла.
2. Оператор REPEAT – оператор с постусловием, имеет следующий вид:
Repeat S until p;
При выполнении этого оператора сначала выполняется тело цикла S, затем вычисляется некоторое логическое выражение p (условие), принадлежащее типу Boolean, в случае ложности которого вновь выполняется тело цикла. Затем выполнение тела цикла, вычисление условия p и его проверка выполняются до тех пор, пока выражение p не станет равно TRUE. После этого управление передается следующему (за REPEAT) оператору в программе. Зарезервированные слова Repeat и Until имеют смысл повторять и пока не.
Оператор цикла REPEAT отличается от оператора WHILE, тем, что здесь условие проверяется после выполнения тела цикла, т.е. гарантируется хотя однократное его выполнение. Оператор REPEAT выполняется до тех пор, пока условие равно FALSE, и управление передается следующему (за REPEAT) оператору, когда условие становится равным TRUE. (Для оператора WHILE имеет место обратная зависимость). Условия повторения цикла для операторов REPEAT и WHILE противоположны.
Даже если условие p равно TRUE с самого начала, тело цикла выполнится хотя бы раз. Если условие p тождественно FALSE, цикл будет бесконечным.
Тело цикла REPEAT не требует заключения в операторные скобки begin .. end. Между ключевыми словами REPEAT и UNTIL можно ввести любое количество операторов, без необходимости заключать их в операторные скобки.
В операторе REPEAT перед ключевым словом UNTIL знак «;» необязателен.
3. Оператор FOR – оператор цикла с параметром имеет следующий вид:
For i=a to b do S;
При выполнении этого оператора сначала вычисляется некоторое начальное значение а, которое присваивается переменной i, называемой параметром цикла. Затем вычисляется конечное значение b и проверяется, имеет ли место равенство i=b. Если равенства нет, выполняется оператор s, который может быть составным, и переменная I увеличивается на единицу. После этого проверка, не равен ли конечному значению, а также выполнение оператора S и увеличение переменной I на единицу выполняется циклически до тех пор, пока не будет получен равенство i=b.
Параметр цикла I, а также начальное и конечное значение (a и b) могут принадлежать любому порядковому типу, но при этом все они должны быть одного типа. Если начальное значение превышает конечное или равно ему с самого начала, оператор s не выполнится ни разу.
Использованные здесь зарезервированные слова For, to, do имеют смысл от, до и выполнять.
Возможна и другая форма оператора цикла с параметром:
For i=a downto b do S;
Здесь, чтобы выполнялся оператор S, начальное значение а должно превышать конечное значение b. В этом случае параметр I с каждым циклом уменьшается на единицу, пока не станет равным конечному значению b.
Оператор цикла с параметром следует использовать тогда, когда заранее точно известно, сколько раз должно выполнится тело цикла.
4. Вложенные циклы. Это подразумевает, что существует внешний цикл и один или несколько внутренних. Каждое повторение внешнего цикла означает завершение всех внутренних циклов; при этом всем выражениям, которые управляют внутренними циклами, вновь присваиваются начальные значения. Вложение допустимо не только для операторов цикла с параметром (FOR), но и для других операторов цикла (WHILE и REPEAT).
Несколько правил при организации вложенных циклов:
· Все правила присущие простому циклу должны соблюдаться;
· Имена параметров для вложенных циклов должны быть различны;
· Внутренний цикл должен полностью входить во внешний
Функция СУММ
Функция СУММ, вне всяких сомнений, является наиболее используемой функцией Excel. Функция СУММ имеет следующий синтаксис:
СУММ(число1;число2; ...;число255)
где число1, число2 — количество аргументов (от 1 до 255), сумму которых необходимо вычислить.
Аргументами функции СУММ должны быть числа, заданные в виде конкретных значений, ссылок на ячейки или диапазоны ячеек, массивов констант. Вместо ссылок можно использовать имена ячеек или диапазонов ячеек. Массив констант представ ляет собой массив чисел, заключенных в фигурные скобки, например {1;2;3} или {1:2:3}. Числа в фигурных скобках должны разделяться точкой с запятой либо двоеточием. Предположим, что в ячейках A1, A2 и A3 содержатся значения 1, 2 и 3. Тогда формулы =СУММ(1;2;3), =СУММ(A1;A2;A3), =СУММ(A1:A3), =СУММ(Данные) и =СУММ({1;2;3}) возвращают один и тот же результат — 6. Здесь имя Данные присвоено диапазону A1:A3. В первой формуле в качестве аргументов функции СУММ используются ссылки на ячейки, во второй формуле аргументом функции СУММ является массив значений.
С помощью функции СУММ можно подсчитать следующее.
· Сумму чисел, содержащихся в одном диапазоне ячеек. В этом случае достаточно задать один аргумент (число1). Для указания ссылки на непрерывный диапазон ячеек используется двоеточие (:) в качестве разделителя между первой и последней ячейками диапазона. Например, формула =СУММ(C5:E5) в ячейке F5 возвращает сумму чисел, содержащихся в диапазоне ячеек C5:E5.
· Сумму чисел, содержащихся в нескольких диапазонах (как смежных, так и нее смежных). В этом случае можно задать до 255 аргументов. Для создания ссылки на два несмежных диапазона используется оператор объединения диапазонов, обозначаемый точкой с запятой (;). Например, формула =СУММ(C5:C7;C9:C11; C13:C15;C17:C19) в ячейке C24 (рис. 6.25) возвращает сумму чисел, которые находятся в диапазонах C5:C7, C9:C11, C13:C15 и C17:C19.
· Сумму чисел, содержащихся в диапазоне, который является пересечением диапазонов, заданных в качестве аргументов. Для создания ссылки на такой диапазон используется оператор пересечения диапазонов — пробел. Например, формула в ячейке C21
=СУММ(C$5:C$7 $C5:$E5;C$9:C$11 $C9:$E9;C$13:C$15 $C13:$E13; C$17:C$19 $C17:$E17)
возвращает сумму чисел, которые содержатся на пересечении диапазонов: C5:C7 и C5:E5 (ячейка C5), C9:C11 и C9:E9 (ячейка C9), C13:C15 и C13:E13 (ячейка C13), C17:C19 и C17:E17 (ячейка C17), т.е. заданная таким образом функция вычисляет сумму чисел, содержащихся в ячейках C5, C9, C13 и C17.
В последней формуле использованы смешанные ссылки на диапазоны. Использование смешанных ссылок позволяет сократить время на ввод достаточно громоздких формул в диапазон C21:E23. Достаточно ввести только одну формулу в ячейку C21 и затем скопировать ее в остальные ячейки диапазона C21:E23.
Если на рабочем листе определены имена, то использование имен в качестве аргументов функции СУММ делает формулы если не менее громоздкими, то, по крайней мере, более осмысленными.
Функция СРЗНАЧ
Функция СРЗНАЧ вычисляет среднее арифметическое своих аргументов. Еслизаданы n действительных чисел a1, a2, ..., an, то число
называется средним арифметическим чисел a1, a2, ..., an.
В формуле для среднего арифметического сначала вычисляется сумма n чисел, затем полученный результат делится на количество слагаемых. Для вычисления среднего арифметического n чисел в Excel можно использовать одну из следующих формул:
· =СРЗНАЧ(Диапазон1)
· =СУММ(Диапазон1)/СЧЁТ(Диапазон1)
Всего функция СРЗНАЧ может иметь до 255 аргументов.
Функции МАКС и МИН
Функция МАКС возвращает наибольшее значение из набора значений, функция МИН — наименьшее значение. В качестве аргументов обеих функций могут использоваться числа, ссылки на ячейки или диапазоны ячеек, имена ячеек или диапазонов, массивы констант. Аргументов может быть до 255.
При определении максимального и минимального значений с помощью функций МАКС и МИН учитываются только те ячейки, которые содержат числа; пустые строки, текст (за исключением чисел, представленных в виде текста) и логические значения игнорируются.
Функции МИН и МАКС возвращают значение ошибки, если хотя бы одна ячейка диапазона содержит значение ошибки. Если диапазон не содержит ячеек с числовыми значениями, функции МАКС и МИН возвращают значение 0 (нуль).
Команды Сумма и Автосумма
Функции СУММ, МИН, МАКС, СРЗНАЧ используются в вычислениях довольно часто. В Excel для быстрой вставки этих функций в формулу на ленте имеются две команды. Команда Сумма расположена на вкладке Главная в группе Редактирование. Команда Автосумма находится на вкладке Формулы в группе Библиотека функций.
Для того чтобы вставить в ячейку функцию СУММ, активизируйте ячейку, в которую необходимо ввести формулу, и выберите команду Формулы-Автосумма либо команду Главная-Редактирование-Сумма. В ячейке появится знак равенства и имя функции СУММ с подсказкой, в которой отображается список аргументов функции СУММ. Excel автоматически выделит один из диапазонов с числами, если текущая ячейка смежная с этим диапазоном, — вокруг выделенного диапазона возникнет движущаяся рамка, в текущей ячейке этот диапазон будет выделен. Если нужно указать другой диапазон, выделите его с помощью мыши. Вы увидите, что в формуле вместо исходной ссылки появилась ссылка на другой диапазон. Если необходимо задать несколько аргументов функции СУММ, при выделении несмежных диапазонов используйте клавишу <Ctrl>. При выделении следующего диапазона Excel автоматически вставит точку с запятой в список аргументов, а затем добавит новую ссылку.
Для вставки функции СУММ в формулу используйте комбинацию клавиш <Alt+=>.
Для того чтобы вставить в формулу другие функции — СРЗНАЧ, МИН, МАКС и СЧЁТ, — необходимо щелкнуть на маленькой кнопке с черным треугольником, расположенной рядом с кнопкой Автосумма или Сумма. Щелчок на этой кнопке открывает меню из шести команд.
· Сумма. При выборе этой команды Excel автоматически вставляет в текущую ячейку функцию СУММ, как было описано выше.
Вставка остальных функций выполняется аналогично.
· Среднее. Выполняется вставка функции СРЗНАЧ.
· Число. Выполняется вставка функции СЧЁТ.
· Максимум. Выполняется вставка функции МАКС.
· Минимум. Выполняется вставка функции МИН.
· Другие функции. Эта команда открывает диалоговое окно Мастер функций, в котором содержится список доступных функций
9. Обработка информации в электронных таблицах. Ссылки: относительные и абсолютные.
Если для различных исходных данных необходимо выполнять повторяющиеся вычисления по одинаковым форму