48599 (608674), страница 2
Текст из файла (страница 2)
При этом комментируется каждое слово в этой записи. При встрече описания массива, транслятор отводит для него столько последовательных ячеек, сколько указано в квадратных скобках, и такого формата, каков тип массива.
Описание из примера означает, что для массива а отведено 10 ячеек по 6 байт каждая. Имена ячеек: в Паскале будут записаны: a[1],a[2],…,a[10].
Ввод и вывод данных массива осуществляется через цикл, например:
For i:=1 to n do read(a[i]);
Базовые задачи на массивы
-
вычисление суммы элементов массива
Вычисление ничем не отличается от суммирования значений простых переменных.
Этапы решения:
-
ввод данных;
-
вычисление суммы;
-
печать результатов;
…
{1} For i:=1 to n do read(a[i]);
{2} S:=0; For i:=1 to n do s:=s+a[i];
{3} Writeln(s);
Пример решения представлен в таблице:
Исходные данные: 3, -2, 9, 7, -1, 6, 1 | |||||||
i | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
a[i] | 3 | -2 | 9 | 7 | -1 | 6 | 1 |
S | 0 | 1 | 10 | 17 | 16 | 22 | 23 |
-
нахождение наибольшего элемента массива
Чтобы лучше представить себе, как последовательно рассматривать и сравнивать между собой числа, записанные в памяти, в учебнике предлагается вообразить, что каждое число написано на отдельной карточке и карточки сложены стопкой:
-
первое число запомним, перевернем карточку
-
сравниваем числа: первое видим, второе помним
-
запомним большее, перевернем карточку
ТО на каждом этапе мы будем помнить большее из рассмотренных чисел и решим задачу.
Пример программы:
…
Max:=a[1];
For i:=2 to n do
if max … упорядочивание массива по возрастанию При решении задачи используется сортировка методом пузырька. поиск элемента в массиве пример поиска методом сплошного перебора, используется оператор goto. Задания по разделу чем отличается массив от файла для чего необходимо описание массива может ли массив содержать разнородные данные в заданном массиве замените нулем наибольший элемент найдите полупроизведение всех положительных элементов замените все отрицательные числа их модулями и т. п. 1.2.5. Алгоритмы обработки таблиц В этом параграфе рассматривается двумерный массив(таблица), его описание, основные задачи: вычисление суммы элементов главной диагонали квадратной таблицы нахождение наибольших элементов каждой строки таблицы нахождение сумм элементов столбцов таблицы перестановка строк таблицы Описание двумерного массива Для лучшего наглядного представления двумерный массив представляется в учебнике, как таблица, в которой номер строки обозначается первым индексом двумерного массива, столбцы – вторым. Объясняется так же, как хранится массив в памяти компьютера (построчно, строка за строкой). Если число строк таблицы = числу столбцов, то таблица – квадратная. Основные задачи вычисление суммы элементов главной диагонали квадратной таблицы алгоритм: ввести таблицу в память найти сумму элементов главной диагонали напечатать результат при решении диагональ рассматривается, как одномерный массив нахождение наибольших элементов каждой строки таблицы. Идея: рассматривать каждую строку, как одномерный массив нахождение сумм элементов столбцов таблицы идея та же + операции можно совершать как над строками, так и над столбцами таблицы перестановка строк в таблице воспользоваться алгоритмом обмена значений 2х переменных + цикл по столбцам Задания по разделу в квадратной неотрицательной таблице найдите квадратный корень произведения диагональных элементов найдите наибольший элемент квадратной таблицы в прямоугольной таблице замените все элементы их квадратами в квадратной таблице найдите наибольший элемент диагонали поменяйте местами первую и последнюю строки прямоугольной таблицы 1.2.6. Обработка строк на языке Pascal В этом параграфе рассказывается о 2х новых для школьников типах данных – символах и строках, а также об основных операциях над ними Символы Для записи символа используется 1 байт памяти. Для данного, описывающего 1 символ используется описатель char. Символы объединяются в массивы. Значение символьного данного – любой символ клавиатуры в апострофах. Символьные массивы обрабатываются теми же алгоритмами, что и числовые. Строки Строка – ограниченная апострофами последовательность любых символов. Длина строки в паскале не должна превышать 255 символов. Операции над строками (объединение, сравнение, присваивание) объединение операция позволяет объединить 2 строки в одну, приписав к концу первой начало второй. Пример X:=’тепло’; Y:=’ход’; Z:=x+y;{получим - теплоход} сравнение ‘=’ – означает посимвольное совпадение строк ‘’ – относятся к длинам строк присваивание – строковой переменной присваивается строковое выражение основные процедуры и функции a:=length(s) – длина строки s:=copy(строковое выражение, начальный символ, количество символов) – копирование части строки a:=pos(подстрока, исх. строка) – поиск подстроки в строке(а-номер первого символа подстроки в исходной строке) insert(вставляемая строка, исходная строка, целое число) – вставка подстроки в строку после данного символа delete(строка, номер начала, количество символов) – удаление из строки данное количество символов после данного элемента. Пример программы В качестве примера использования строковых процедур и функций используется программа пословного перевода с английского языка. Задания по разделу чем отличается символьный тип данных от строковых используя символьный массив, определите, сколько слов в данном тексте, сколько букв «а» в данном слове дана строка с несколькими запятыми, получите слово между первой и второй запятыми 1.2.7. Записи В этом параграфе дается определение записи, описание её структуры на Паскале и простейшие примеры применения. Определение записи С одной стороны запись – последовательность байтов на носителе, ограниченная с двух сторон специальными признаками, с другой стороны, в связи со сложной её внутренней структурой, запись – совокупность разнородных данных, описываемых и обрабатываемых, как единое целое. Данные из которых состоит запись – поля. Описание записи Type A = record N:integer; K:string; F:array[1..5,5..10]of real; End; Var rec:a; Примеры записей объект – физическое тело с измерениями a,b,c – длина, ширина, высота объект – товар, характеризующийся названием и ценой объект – дата рождения: день, месяц, год Записи могут объединяться в массивы, например: Type A = record N:integer; K:string; F:array[1..5,5..10]of real; End; Mas = array[1..n] of A; Var masrec:mas; Для обращения к полю записи используются сложные имена из имени записи из раздела var и имени поля, разделенных точкой: rec.n; rec.f[1,5]; masrec[1].f[2,8]; Массив сведений о работниках предприятия(имя, должность, дата рождения, зарплата). Операции над записями В программе ввод и вывод записи производится по полям, но можно присвоить одной записи значение другой, при этом происходит копирование области памяти. Оператор присоединения – используется для краткости. Он позволяет при обработке записи указать её имя только 1 раз: with список имен do оператор. 1.2.8. Файлы В параграфе описаны основные этапы операций обработки файлов – чтения и записи Операция записи Запись в файл – помещение в него новых данных. Данное для занесения в файл формируется в оперативной памяти как значение некоторой переменной. Операцией записи это значение копируется из оперативной памяти во внешнюю. Следовательно, форма представления данного, его тип и структура должны быть одинаковы и для записей файла и для переменной, из которой это данное копируется. Этапы записи в файл описание файла – в разделе описания типов или переменных. Пример: var f:file of integer; a:integer; Установление соответствия между физическим и логическим именем файла. Оператор установления соответствия: assign(логическое имя, ‘физическое имя’); например assign(f,’file.dat’); открытие файла для операции запись – rewrite(f); если открыть для записи файл с имеющимися данными – они все пропадут. запись данных в файл – write(f,a); закрытие файла – close(f); Операция чтения. Этапы: Описание файла и установление соответствия между его именами также, как для записи. открытие файла для чтения – reset(f); читать данные из файла – read(f,a); количество записей в файле может быть неизвестно. По этому при чтении удобно использовать функцию признака конца файла – eof(f); закрыть файл На каждую из операций показан простой пример чтения или записи в файл чисел. Также показан прием дозаписи файла, использующий вспомогательный файл. Задания по разделу какие операции можно производить с данными файла почему второй параметр операторов write и read должен быть того же типа, что и данные файла чем отличается физическое имя файла от логического как открыть файл для записи что будет, если ранее созданный файл с данными открыть для записи чем отличается файл от массива как прочесть данные из файла, не зная их количества как добавить данные в имеющийся файл 1.3. «Информатика и информационные технологии» Н. Угринович В этом учебнике, в отличие от вышеописанных, изучение темы ведется не попутно с другими темами, а отдельно, для этого выделено несколько параграфов. Поскольку в этом учебнике изучается другая среда программирования, остановимся только на структуре изложения материала. 1.3.1. Тип, имя и значение переменной В этом параграфе даются основные понятия о переменных, их именах, значениях, данных и типах. Понятие переменной Переменные задаются именами, определяющими области памяти, в которых хранятся значения переменных. Значениями переменных могут быть данные различных типов (целые, вещественные числа, последовательности символов и так далее). Переменная в программе представлена именем и служит для обращения к данным определенного типа. Конкретное значение переменной хранится в ячейках оперативной памяти. Тип переменной Тип переменной определяется типом данных, которые могут быть значениями переменной. Значениями переменных числовых типов являются числа, логических – True или False, строковых – последовательности символов и так далее. Над различными типами данных допустимы различные операции. Над числовыми – арифметические операции, над логическими – логические операции, над строковыми – операции преобразования символтных строк и так далее. Различные типы данных требуют для своего хранения в памяти различное количество ячеек (байтов). {таблица типов данных и их размеров в памяти} Задания по разделу В чем разница между типом, именем и значением переменной? Определить, какой диапазон чисел может храниться в переменной типа {тип} с учетом выделения одного байта для хранения знака числа. Определить, какое количество ячеек памяти потребуется для хранения строк “ЭВМ”, “информатика”. 1.3.2. арифметические, строковые и логические выражения Присваивание В параграфе описаны выражения, которые можно составить с основными типами данных – числовой, логический, строковый. Арифметические выражения В состав арифметических выражений могут входить кроме переменных числового типа, также и числа, над переменными и числами могут производиться различные арифметические операции, выраженные с помощью функций. Строковые выражения В состав строковых выражений могут входить переменные строкового типа, строки и строковые функции. Над переменными и строками может производиться операция конкатенации, она заключается в объединении строки или значения строковых переменных в единую строку. Операция обозначается знаком «+». Логические выражения В состав логических выражений кроме логических переменных могут входить числа, числовые или строковые переменные или выражения, которые сравниваются между собой при помощи операций сравнения. Например (5>3) = true; (2*2 = 5) = false; Над элементами логических выражений могут производиться логические операции – логическое умножение(and), логическое сложение(or), логическое отрицание(not). Задания по разделу Могут ли в состав одного выражения входить переменные различных типов? В чем разница между операцией логического сложения и операцией конкатенации? 1.3.3. Функции в языке Visual Basic В этом параграфе описаны основные функции, употребляемые для каждого из используемых типов данных. Функции перевода типов данных Применительно к Pascal в этом разделе можно упомянуть такие процедуры, как STR(a); VAL(s,a,b); Математические функции Здесь упомянуты такие математические числовые функции, как Sin, cos, tan, atn, sqr, sqrt, log, exp, random, abs. Строковые функции Функция длины строки Функция вырезания подстроки Функции ввода и вывода Аналог в паскале – readln, writeln 1.3.4. массивы Изложение материала мало отличается от предыдущих учебников. Задания по разделу в чем различие между переменной и массивом Вывод Сравнительная характеристика вышеописанных учебников по изучаемым темам приведена в таблице: учебники темы учебник Кузнецова учебник Семакина учебник|Угриновича Основные понятия раскрытие темы в равной степени наблюдается во всех учебниках, дается определение основных понятий, перечислены и охарактеризованы основные числовые типы Арифметические выражения перечислены 4 основных операции (+,-,/,*) и правила их записи, операторы ввода, вывода, присваивания кратко – раздел описания 4 основных операции + sin, cos, ln, sqr, sqrt,abs, пример записи выражения, раздел описания, операторы ввода, вывода, присваивания даны все, используемые в среде VB, типы, их диапазоны, применяемые операции, в том числе преобразования типов логические выражения не вводится как тип, но показаны примеры использования логических выражений в условиях циклов и условного оператора не вводится как тип, но рассмотрены основные логические операции и применение их в сложных условиях выделен логический тип, рассмотрены все правила логики и их применение в коде программы массивы (1-о и 2-мерные) определение 1мерного массива, его описание, ввод-вывод данных, нахождение среднего значения. определение 1,2мерного массива, ввод, вывод, описание, задачи на нахождение суммы, наибольшего элемента, упорядочивание и поиск строки не вводятся как тип, используются только как подсказки для операторов вывода и ввода определение типов char и string, операции объединения, сравнения, присваивания, удаления части строки определение строкового типа, операции сложения, определения длины, вырезания подстроки, преобразования типов записи Не рассматриваются Определение, примеры описания и использования не рассматриваются файлы определение, описание, операции чтения, записи, функция конца файла, примеры Более полное раскрытие тем наблюдается в учебнике Кузнецова. В учебнике Семакина изложение ведется применительно к нескольким разделам (программирование, БД и Электронные таблицы). В процессе изучения типов данных более полно во всех учебниках изучаются числовые типы данных – integer и real. Также, в каждом учебнике изучаются одномерные массивы, даются основные понятия и неявное применение переменных логического типа. В учебнике Кузнецова, в отличие от Семакина, рассматриваются двумерные массивы, строки, записи и файлы. В обоих учебниках, в отличие от учебника Угриновича, тема раскрывается параллельно с другими структурами языка, по мере необходимости применения нового материала, есть разделы, которые можно дополнить, расширить и систематизировать. В качестве контрольных заданий применяются, вместе с теоретическими вопросами на знание материала такие задания, как: Написать программу для реализации какой либо ситуации Определить результат действия программы. На основании сделанных выводов решено создать дополнительное обучающее средство в виде обучающей программы, поддерживающей индивидуальное изучение всех вопросов темы, а также, дополнительные сведения о типах данных. Кроме того, в программу будет встроен блок самоконтроля, поддерживающий проверку усвоения каждой изучаемой темы. Глава 2. Описание и принцип работы обучающей программы по теме «структуры данных» 2.1. Общие сведения о программе П После запуска программы открывается окно регистрации, в котором пользователь может зарегистрироваться, нажав соответствующую кнопку, или продолжить работу, выбрав свое имя из списка и введя свой пароль. Для контроля работы пользователей, в программе предусмотрена функция «показать оценки». Далее, после регистрации, пользователю предлагается выбрать тему для изучения. Здесь также показаны оценки за каждую из изученных тем. Предполагается, что изучение тем происходит в порядке их расположения в списке тем. При нарушении этого условия пользователю будет выведено сообщение об ошибке. П Переходы по страницам материала осуществляются тремя способами: кнопки «назад» и «вперед» гиперссылки в тексте материала список тем и разделов в левой части формы Функции всех кнопок дублируются в строке меню программы. Пользователю доступен также словарь, составленный из новых слов, употребляемых в тексте. После прочтения очередного раздела программа предлагает пройти тест для проверки усвоения темы. В программе предусмотрено 5 вариантов теста для каждой темы, вариант выбирается случайно при каждом открытии теста. Количество вопросов и вариантов ответа может быть различным (в зависимости от составленного теста), оценка выставляется по формуле:
рограмма представляет собой электронный учебник со встроенным средством самоконтроля и проверки знаний.
осле выбора темы открывается окно с обучающим текстом. Процесс работы с ним мало отличается от просмотра страниц Internet.