Алгоритмические языки: обработка массивов
Символьные типы данных, работа со строками, составление блок-схемы алгоритма и программы для работы с массивами. Организация программы с использованием процедур и функций. Процедуры и функции, использующиеся при обработке файлов; компонентные файлы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 03.10.2010 |
Размер файла | 52,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
КОНТРОЛЬНАЯ РАБОТА
по дисциплине “Основы программирования”
на тему
Алгоритмические языки: обработка массивов
Задание 1. Символьные типы данных. Работа со строками
Краткие теоретические сведения.
Символьный тип (char) представляет собой тип данных, предназначенных для хранения одного символа (буквы, знака или кода).
Функции над символьными переменными:
chr(x) - определение символа из набора символов по порядковому номеру;
ord(x) - определение порядкового номера символа в наборе символов;
upcase(x) - преобразование строчных букв в прописные;
pred(x) - определение предыдущего элемента;
succ(x) - определение последующего элемента.
Тип данных string (строка) специально предназначен для обработки строк (цепочек символов). Переменная типа string состоит из элементов типа char. Переменные типа string могут быть объявлены следующим образом:
var Имя_переменной1: string;
Имя_переменной2: string[n];
Переменная типа string объявляется, как правило, путем указания имени переменной, зарезервированного слова string и указания (в квадратных скобках) максимального размера (длины) строки, которая может храниться в этой переменной. Если максимальный размер строки не указан, то он автоматически принимается равным 255 - максимально возможная длина строки.
Стандартные процедуры и функции для строк:
функция Length - определение фактической длины текстовой строки, хранящейся в указанной переменной;
функция UpCase - преобразование символа любой литеры из строчного в прописной;
функция Copy - копирование фрагмента некоторой строки из одной переменной в другую;
функция Pos - осуществление в некоторой строке поиска определенного фрагмента;
функция Concut - соединение строк;
процедуры Insert и Delete - вставка фрагмента из одной строки в другую, удаление фрагмента из строки[1-8].
Постановка задачи.
Дана последовательность слов; между соседними словами - запятая, за последним словом - точка. Напечатать эту же последовательность слов, но удалив из неё повторные вхождения слов. Составить блок схему алгоритма и программу.
Листинг программы
uses crt;
var str:array[1..10] of string; - массив для слов
Slovo,st:string; - строка предложения
i,j,n,k:integer; - вспомогательные переменные
begin
ClrScr;
Writeln(' Programma ydalyaet povtornoe vhojdenie slov ');
Writeln;
Writeln('Vvedite posledovatelnost slov v formate: <>,<>,<>.'); - формат ввода слов в программе
Write('Vashi slova: ');
Readln(Slovo);
if Length(Slovo)<1 then - проверка на ввод слов
begin
Writeln('Nujno vvesti slovo!');
Halt;
end;
j:=0; i:=1; k:=1; n:=1; - н.у. для переменных
while i<=Length(Slovo) do - цикл в котором слова из предложения заносятся в массив begin строк
n:=i;
while (Slovo[i]<>',')and(Slovo[i]<>'.') do begin inc(i); inc(j); end;
str[k]:=Copy(Slovo, n, j); - занесение в массив слова
j:=0;
inc(k);
inc(i);
end;
str[k]:='.';
for i:=1 to k-1 do - цикл в котором происходит сравнение и удаление
for j:=(i+1) to k-1 do begin одинаковых слов в предложении
if str[i]=str[j] then begin
str[j]:='';
end;
end;
st:='';
for j:=1 to k-1 do begin - формирование предложения из неповторяющихся слов
if (str[j]<>'') then st:=st+str[j]+',';
end;
delete(st,Length(st),1);
st:=st+'.';
writeln;
writeln('Posledovatelnost');
write('bez povtoreniy:',st); - вывод результата
readln;
end.
Блок-схема алгоритма программы.
Рис.1 Блок-сема программы задания 1.
Результаты работы программы.
Задание 2. Организация программ с использованием процедур и функций
Краткие теоретические сведения.
В случае, когда одна и та же последовательность действий должна выполняться на различных этапах обработки информации, можно использовать процедуры и функции. В общем виде заголовок процедуры имеет вид:
procedure Имя_процедуры (Список параметров);
Список параметров - перечень имен для обозначения исходных данных и результатов работы процедуры с указанием их типов. Параметры, перечисленные в списке, называются формальными. Константа, переменные, типы, описанные в блоке program, называются глобальными. Допускается описание процедуры, не содержащей параметры. Вызов процедуры имеет вид:
Имя_процедуры (Список параметров);
Параметры, содержащиеся в Списке параметров при вызове процедуры, называются фактическими.
Функции - это процедуры особого характера, результатом работы которых является некоторое значение, подобное переменной. Результат работы функции присваивается имени функции. Общая структура функции совпадает со структурой процедуры, за исключением заголовка. Заголовок функции имеет следующий вид:
Function Имя_функции (Список параметров): Тип_результата;
Процедуры и функции помещаются в главной программе после раздела var и перед bеgіn основного блока программы[1-8].
Постановка задачи.
По вещественному числу а>0 вычислить величину
Составить блок схему алгоритма и программу.
Листинг программы.
uses crt;
var t:real; - вспомогательные переменные
st1,st2,st3:real; - вспомогательные переменные
a,a2,a3:real; - промежуточные переменные
t1,t2,t3:real; - вспомогательные переменные
Function pow1(x, v: real): real; - функция для возведения числа x в степень v
Begin
if (v = 0.0) then - проверка условия v>0
pow1:= 1
else
if (x = 0.0) then - - проверка условия x<>0
pow1:= 0
else
if (x > 0.0) then
pow1:= exp(v*ln(x)) - вычисление числа в заданной степени
else
if (odd(trunc(v))) then
pow1:= -exp(int(v)*ln(-x))
else
pow1:= exp(int(v)*ln(-x));
End;
BEGIN
clrscr;
st1:=1/3;
st2:=1/6;
st3:=1/7;
writeln('Format vvoda chisla: *.*');
write('Vvedite vewestvennoe chislo "a":');
readln(a);
a2:=a*a+1; - промежуточные вычисления
a3:=3+a; - промежуточные вычисления
t1:= pow1(a,st1);
t2:= pow1(a2,st2);
t3:= (1+pow1(a3,st3));
t:= (t1-t2) / t3; - вычисление заданной формулы
writeln;
write('Otvet: t=',t); - вывод результата
readln;
END.
Блок-схема алгоритма программы.
Рис.2 Блок-сема программы задания 2.
Результаты работы программы.
Задание 3. Работа с файлами
Краткие теоретические сведения.
Файл - это последовательность компонент, являющихся объектами одного и того же типа. Количество компонент в файле заранее не оговаривается, компоненты файла не имеют индексов. В Паскале возможно использование трех файловых типов: текстовые файлы, компонентные файлы, бестиповые файлы.
Процедуры и функции, использующиеся при обработке файлов любых типов:
* процедура Assign(Var_file, Road) связывает переменную Var_file с некоторым именем файла, которое хранится в переменной Road;
* процедура Reset(f) открывает файл с именем f для чтения;
* процедура Rewrite(f) создает новый файл f и открывает его для записи;
* процедура Erase(f) стирает существующий файл с диска;
* функция EOF(f) проверяет достижение конца файла;
* функция Close(f) закрывает файл f.
Типизированный, или компонентный файл - это файл с объявленным типом его компонент. Объявление такого типа имеет структуру:
var Имя_переменной_файла: file of Тип_элементов_файла;
Текстовые файлы организуются по строкам и объявляются следующим образом:
var file: text;
Кроме общих для всех файлов процедур и функций, определены еще несколько, работающих только с текстовыми файлами:
* процедура Append(file), открывающая текстовый файл file для дозаписи в конец файла;
* функция EOLn(file), проверяющая достижение конца строки[1-8].
Постановка задачи.
Скопировать из файла F1 в файл F2 строки, начиная с N до K. Составить блок схему алгоритма и программу.
Результаты работы программы.
Файл F2.txt
sasa
ss
fedg
dfhdfh
Листинг программы.
uses crt;
var f,g:text; - логические имена файлов
s:string; - вспомогательные переменные
i,n,m:integer; - вспомогательные переменные
BEGIN
clrscr;
assign(f,'D:\FF\F1.txt '); - открытие файла F1.txt из D:\FF\F1.txt
reset(f);
assign(g,'D:\FF\F2.txt'); - открытие файла F2.txt из D:\FF\F2.txt
rewrite(g);
writeln('Kopirovat stroki'); - запрос на копирование строк
write(' s:');
readln(n);
write('po:');
readln(m);
i:=1;
while not EOF(f) do begin - цикл в котором происходит копирование
с позиции n до позиции m
readln(f,s);
if (i>=n)and(i<=m) then
begin
writeln(g,s);
end;
inc(i);
end;
writeln('Gotovo!'); - результаты выполнения программы в файле F2.txt
close(g);
close(f);
readln;
end.
Блок-схема алгоритма программы.
Рис.3 Блок-сема программы задания 3.
Список использованных источников
1. Абрамов С.А., Зима Е.В. Начала информатики. --М.: Наука, 1990.
2. Грогоно П. Программирование на языке Паскаль. - М.: Мир, 1982.
3. Йенсен К., Вирт H. Паскаль. Руководство для пользователя и описание языка. -М.: Финансы и статистики, 1982.
4. Перминов О.Н. Программирование на языке Паскаль. - М.: Радио и связь, 1988.
5. Пильщиков В.Н. Сборник упражнений по языку Паскаль. - М.: Наука, 1989.
6. Прайс Д. Программирование на языке Паскаль. Практическое руководство. -М.: Мир, 1987.
7. Турбо Паскаль 7.0. - К.: Торгово-издательское бюро BHV, 1996.
8. Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие.-М.: «Нолидж», 1997.
Подобные документы
Особенности работы с процедурами и двумерными массивами, последовательность вызова процедур. Способы описания и использования многомерных массивов, назначение процедур, их описание и обращение к ним. Набор программы, ее отладка и тестирование данных.
лабораторная работа [112,1 K], добавлен 03.10.2010Работа с массивами, их ввод и вывод, организация программ циклической структуры. Способы описания и использования массивов, алгоритмы их сортировки, сортировка выбором и вставками. Алгоритмы поиска элемента в неупорядоченном и упорядоченном массивах.
лабораторная работа [14,2 K], добавлен 03.10.2010Преобразование матрицы по заданным правилам. Методика работы с массивами, основанная на классических алгоритмах. Разработка и описание блок-схемы алгоритма. Листинг программы, экраны работы и отладки программы. Инструкция для пользователей программы.
контрольная работа [338,4 K], добавлен 29.01.2013Изучение категории типов данных, видов выражений и операций, работа на языке Си. Составление программы вычисления значения функции у(х) при произвольном значении х. Блок-схема алгоритма. Описание текста программы и рассмотрение контрольного примера.
лабораторная работа [124,7 K], добавлен 09.01.2012Заголовки процедур и функций, их основные параметры. Работа с массивами и строками в среде разработки Borland Delphi. Основное назначение процедурных типов, правила их объявления. Механизм передачи процедур в качестве фактических параметров вызова.
курсовая работа [27,9 K], добавлен 18.05.2011Построение ветвящихся процессов на примере табулирования функции на заданном промежутке. Построение блок-схемы, применение операторов цикла и условного перехода, математических функций и констант. Создание алгоритма и листинг программы на языке Pascal.
лабораторная работа [154,1 K], добавлен 07.02.2012Изучение условий поставленной задачи и используемых данных для разработки программы хранения информации о рейсах поезда. Описание разработанных функций, листинга, блок-схем алгоритмов и дерева функции. Рассмотрение сценария диалога данной программы.
курсовая работа [532,7 K], добавлен 20.07.2014Работа с одномерными и двухмерными массивами: составление функций нахождения заданных элементов, их количества и суммы под и над главной диагональю, поиск среднего арифметического. Составление блок-схемы, написание текста программы, его тестирование.
контрольная работа [52,0 K], добавлен 27.12.2010Использование математических функций для алгоритмизации задач и отладки программ. Операторы сравнения и логические функции; реализация циклического процесса. Организация и обработка данных при помощи массивов. Функции преобразования и работы со строками.
методичка [135,5 K], добавлен 24.10.2012Блок-схема программы, подсчитывающей количество слов последовательности, начинающихся с большой буквы и оканчивающихся цифрой. Символьный квадратный массив и его заполнение. Создание программы, которая формирует файл записей заданной структуры.
курсовая работа [529,7 K], добавлен 19.12.2010