Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Преобразование массивов
Заменить все элементы, отвечающие данному условию (> a), на заданную величину (c). for i: =1 to 10 do for j: =1 to 10 do if a[i, j]> a then begin a[I, j]: =c; end; · Найти сумму каждой строки матрицы и записать в отдельный одномерный массив. program mas4; uses crt; const n=4; m=4; type t=array[1..n, 1..m] of integer; w=array[1..4] of integer; var a: t; i, j, b, s, d: integer; c: w; begin clrscr; for i: =1 to n do begin writeln ('Введите строку элементов матрицы (4 элемента)'); for j: =1 to m do read(a[i, j]); writeln; end; for i: =1 to n do begin for j: =1 to m do begin textcolor (14); write(a[i, j]: 3); end; writeln; end; writeln; {Расчёт суммы} for i: =1 to n do begin s: =0; for j: =1 to m do begin s: =s+ a[i, j]; end; c[i]: =s; textcolor (10); write(c[i]: 6); end; repeat until keypressed; end. · Выполнить транспонирование матрицы. Транспонированная матрица это матрица, получающаяся из данной (прямоугольной или квадратной) матрицы после замены строк соответствующими столбцами. program mas2; uses crt; const n=8; m=8; type t=array[1..n, 1..m] of integer; var a: t; i, j: integer; begin clrscr; textcolor (9); for i: =1 to n do begin for j: =1 to m do begin a[i, j]: =random (10); write (a[i, j]: 3); end; writeln; end; writeln; textcolor (14); for i: =1 to n do begin for j: =1 to m do begin write (a[j, i]: 3); end; writeln; end; repeat until keypressed; end.
Примеры программ: · Дана матрица b, состоящая из целых. Получить матрицу r, значения которой равны удвоенным значениям матрицы b program mas5; uses crt; const n=4; m=4; type t=array[1..n, 1..m] of integer; var r, b: t; i, j: integer; begin clrscr; textcolor (15); for i: =1 to n do begin writeln ('Введите строку матрицы (4 элемента)'); for j: =1 to m do begin read (b[i, j]); end; writeln; end; for i: =1 to n do for j: =1 to m do r[i, j]: =b[i, j]*2; writeln; for i: =1 to n do begin for j: =1 to m do begin textcolor (10); write (r[i, j]: 3); end; writeln; end; repeat until keypressed; end. · Одномерный массив из 10 элементов заполнить произвольными числами от 0 до 9 и выдать его на экран. program pt1; uses crt; type t=array[1..10] of integer; var a: t; i: integer; begin clrscr; randomize; for i: =1 to 10 do begin a[i]: =trunc(random(10)); write(a[i]: 4); end; readln; end._
· Двумерный массив размерностью 4 х 5 заполнить целыми двузначными числами и выдать его на экран.
· Двумерный массив размерностью 4 х 5 заполнить целыми числами в интервале от –10 до 20 с шагом 5 и выдать его на экран.
· Двумерный массив размерностью 4 х 5 заполнить целыми числами в интервале от –10 до 20 с шагом 5 и выдать его на экран. Найти максимальный элемент массива и его координаты.
· Заполнить одномерный массив размерностью М (М ввести с клавиатуры) целыми числами от –30 до 39 и выдать на экран. Все отрицательные элементы массива заменить на 0 и выдать массив на экран. Поменять местами 2-й и предпоследний элемент массива, выдать массив на экран.
· Заполнить одномерный массив размерностью М (М ввести с клавиатуры) целыми числами от –30 до 39 и выдать на экран. Отсортировать массив по убыванию и выдать на экран.
ТЕМА №8: ДАННЫЕ ТИПА STRING. ЦЕЛИ И ЗАДАЧИ: приобретение навыков составления программ с использованием данных типа STRING ТРЕБОВАНИЯ К ЗНАНИЯМ И УМЕНИЯМ: Учащиеся должны знать: - Что такое данные типа STRING; - Как описываются строковые данные; - Для чего используются строковые данные; - Сколько бай занимают строковые данные; - Для чего используется нулевой элемент строковой переменной, - Как обозначается элемент строковой переменной; - С какой цифры начинается отсчет номера элемента строкой переменной; - Какой функцией определяется длина строковой переменной; - Как склеить две строковые переменные; - Как вырезать часть строковой переменной; - Как вставить одну строковую переменную в другую; - Как удалить часть строковой переменной; - Как можно преобразовать числовую переменную в строковую; - Как определить входить ли одна строковая переменная в состав другой. Учащиеся должны уметь: - Правильно задавать строковые переменные; - Правильно использовать строковые переменные; - Правильно использовать процедуры и функции обработки строковых переменных; - Вводить строковые переменные; - Составлять программы, используя строковые переменные.
ПЛАН-СОДЕРЖАНИЕ УРОКА Основные понятия Данные типа String или строковые данные (Строка) – это особая форма одномерного массива символов. Отличие строки от массива в том, что массив имеет фиксированную длину (количество элементов), которая определяется при описании. Строковые данные описываются следующим образом: Var S: string[n]; SS: string; где n – число символов в строковой переменной, изменяется от 1 до 255. Длина описанной переменной S - n+1 байт. Максимально возможная длина строковой переменной – 255 символов. S[i] – общий вид элемента строковой переменной
Строка имеет две разновидности длины: - общую длину строки (n), которая характеризует размер памяти, выделяемый строке при описании. - Текущую длину строки (p) (p< =n), которая показывает количество смысловых символов в каждый конкретный момент времени. При выдаче на экран значения нулевого символа (Write(ord (s[0]));), получим величину р. Например: 0 1 2 3 4 5 6 7 8 9 10
Символ, код которого =7 р=7 n=10 var s: string[10]
Когда в описании длина не указывается, то она по умолчанию берется 255 символов. Заполняются строковые данные с помощью оператора присваивания (: =) или оператора ввода (read). Примеры: SS: =’Информатика’; read(s); Сравнение строковых переменных идет слева направо в соответствии с ASCII кодами символов. При сравнении длин строк используются операции =, > =, < =, < >, <, >. Если длина переменных одинакова – больше то, у которого больше код. Если длины разные – более короткая величина меньше. Считается, что отсутствующие символы в более короткой строке имеют код, меньше кода любого действительного символа. Например, ‘AB’ больше, чем ‘A’.
Строковые переменные можно склеить (знак +), что равноценно дозаписи символов второй переменной к символам первой. Если длина новой строки превысит допустимую (255) длину, то «лишние» символы отбрасываются. Пример, если а: =’К’; b: =’O’; с: = ‘Т’; х: =а+b+с; d: =a+c+b; – то в х поместится 'КОТ', а в d – ‘КТО’ Для обработки строковых переменных имеется набор специальных процедур и функций.
Процедуры обработки строк:
Функции обработки строковых переменных:
Примеры программ:
ТЕМА №9: ФАЙЛЫ. ТИПИЗИРОВАННЫЕ ФАЙЛЫ. ТЕКСТОВЫЕ ФАЙЛЫ.
ЦЕЛИ И ЗАДАЧИ: Дать представление о файлах и средствах их обработки на языке Pascal. Приобретение навыков составления программ с использованием файлов различного типа ТРЕБОВАНИЯ К ЗНАНИЯМ И УМЕНИЯМ: Учащиеся должны знать: - Что такое файл; - Какие бывают файлы; - Что такое файловая переменная; - Как описываются типизированные файлы; - Процедуры и функции работы с файлами; - Процедуры и функции работы с типизированными и текстовыми файлами; - Как описываются текстовые файлы. Учащиеся должны уметь: - Правильно описывать типизированные и текстовые файлы; - Правильно пользоваться файловой переменной; - Составлять программы с использованием типизированных и текстовых файлов; - Составлять простейшие программы с использованием процедур и функций работы с типизированными и текстовыми файлами.
ПЛАН-СОДЕРЖАНИЕ УРОКА Основные понятия Мы все время рассматривали задачи, в которых данные поступают с клавиатуры, а результаты выводятся на экран. Ни исходные данные, ни результаты не сохраняются. А если данных слишком много? Как записать их на диск? Для этого необходимо исходные данные и результаты оформить в виде файлов, которые хранятся на диске. Файлы – это поименованная структура данных на техническом носителе, представляющая собой последовательность элементов (записей) одного типа или - это массив переменной длины неограниченного размера. Файл может быть компонентом другой структуры, но не должен входить в другой файл. Отличие файла от массива: размещение на внешнем носителе, длина файла не задается, место элемента не определяется индексом. Файлы бывают: - типизированные - нетипизированные - текстовые Файл объявляется в разделе описания переменных с указанием типа элементов файла. Например: Var F1: file of integer; F2: file of char; F3: text; F4: file; Типизированными файлами называются файлы, в описании которых присутствует указание типа. Типизированные файлы – это файлы с прямым доступом к компонентам (записям). Нетипизированный файл – это просто последовательность байтов, без конкретизации структуры. Файл, компонентами которого являются данные символьного типа, называется текстовым. Отличие текстовых файлов от типизированных - наличие строковой структуры. В текстовые файлы можно записывать любую информацию, в том числе числа. При этом они (числа) автоматически преобразуются в строковые величины, а при считывании из файла – обратное преобразование в числа. Описание файлов:
Файл на техническом носителе определяется полным именем (< путь> \< собственно имя>.< расширение>). Для обозначения файла и работе с ним в программе используется файловая переменная. Файловая переменная - это переменная, используемая в программах для обозначения файла и обращения к нему. Она не может использоваться как обычная переменная (слева от знака присваивания, в логических и арифметических выражениях). Особенности файловой переменной: 1. Ей нельзя присваивать какие-либо значения 2. Она не может участвовать в логических операциях 3. Она не может входить в математические выражения При работе с файлом используется понятие указателя или индекса файла, т.е. положение магнитной головки в определенном месте файла. Перед началом работы файл должен быть создан или открыт, по окончании работы – закрыт. При работе с файловыми переменными, используются специальные процедуры и функции:
Пимеры программ: § Пример записи типизированных файлов: var f: filt of integer; assign(f, ‘file’); … rewrite(f); …write(f, v1, v2, …, vn); clos(f); § Пример считывания типизированных файлов: var f: filt of integer; assign(f, ‘file’); … reset(f); … read(f, v1, v2, …, vn); clos(f); § Пример записи в текстовый файл: uses crt; var f: text; r, i: integer; rr: string; begin clrscr; rr: ='Dautova'; assign(f, 'dddddd'); rewrite(f); writeln(f, rr); for i: =1 to 20 do begin r: =random(10); writeln(f, r); end; close(f); end._ § Считывание из текстового файла (см программу выше): uses crt; var f: text; r, i: integer; rr: string; begin clrscr; assign(f, 'dddddd'); reset(f); readln(f, rr); writeln(rr); for i: =1 to 20 do begin readln(f, r); writeln(r); end; close(f); end._
· Написать программу, вычисляющую корни квадратного уравнения и вывести результаты в файл. Uses crt; Var a, b, c, x1, x2, d: real; f: text; Begin Assign(f, ’result.txt); Rewrite(f); Readln(a, b, c); D: =b*b-4*a*c; If d> =0 then Begin X1: =-b+sqrt(d)/(2*a); X2: =-b-sqrt(d)/(2*a); End; Writeln(‘решени квадратного ур-я’); Writeln(f, 'a=', a: 6: 3, 'b=', b: 6: 3, 'c=', c: 6: 3); If d< 0 then writeln(f, ’у урав-я нет корней’) else writeln(f, ‘корни: x1=’, x1: 6: 3, ’x2=’, x2: 6: 3); Close(f); Writeln(‘рез-ты работы программы в файле result.txt’); Repeat until keypressed; end.
· На диске имеется файл с именем Karl.txt, в котором записана скороговорка: " Карл у Клары украл кораллы, Клара у Карла украла кларнет." Требуется подсчитать кол-во букв «К» Uses crt; Var f: text; s: integer; a: char; Begin Assign(f, ’Karl.txt’); Reset(f); S: =0; While not eof(f) do Begin While not eoln(f) do Begin Read(f, a); If a=’k’ then s: =s+1; End; Readln(f); End; Close(f); Writeln(s); Repeat until keypressed; end. · Ввести текст в текстовый файл f1. Переписать файл f1 в f2 – первую половину файла в прямом, а вторую – в обратном порядке следования символов. Uses crt; Var f1, f2: text; s, s1, sa, sb: string; a: char; n, y, i: integer; Begin Clrscr; Assign(f1, ’file1’); Assign(f2, ’file2’); Rewrite(f1); Readln(s); Writeln(f1, s); Close(f1); Reset(f1); Rewrite(f2); Read(f1, s1); N: =lenght(s1); Y: =n div 2; Writeln(y); Sa: =’’; sb: =’’; For i: =n downto y+1 do Sa: =sa+s1[i]; Writeln(sa); For i: =1 to y do Sb: =sb+s1[i]; Writeln(sb); S1: =sb+sa; Writeln(s1); Write(f2, s1); Close(f1); Close(f2); Repeat until keypressed; end.
|