Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Пример фрагмента программы ввода массива Паскаля





Var

A : array [1..10] of integer ;

i: integer ;

Begin

For i:=1 to 10 do

Readln (a[i]);

 

Рассмотрим теперь случай, когда массив Паскаля заполняется автоматически случайными числами, для этого будем использовать функцию random ( N ).

Примерфрагмента программы заполнения массива Паскаля случайными числами.

Var

A: array [1..10] of integer;

i : integer ;

Begin

For i :=1 to 10 do

A[i]:= random (10);

 

Вывод массива Паскаля

Вывод массива в Паскале осуществляется также поэлементно, в цикле, где параметром выступает индекс массива, принимая последовательно все значения от первого до последнего.

Примерфрагмента программы вывода массива Паскаля в строку

Var

A: array [1..10] of integer;

i : integer ;

Begin

For i :=1 to 10 do

Write ( a [i],);

Вывод можно осуществить и в столбик.

Примерпрограммы вывода массива Паскаля в столбик

VarA: array [1..10] of integer;

i : integer ;

For i:=1 to 10 do

begin

Writeln (‘a[‘, i,’]=’, a[i]);

 

ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧИ С ИСПОЛЬЗОВАНИЕМ МАССИВОВ ПАСКАЛЯ

Нахождение суммы и произведения элементов массива

Задачи данного типа являются достаточно простыми и сводятся к поэлементному перебору массива и выполнению соответствующих алгебраических операций.

Алгоритм решения задачи:

Перед этим вводятся "пустые" переменные, значения которых в цикле for перезаписываются. Сумма элементов массива находится путем прибавления элемента к прежнему значению переменной. Произведение – умножением прежнего значения переменной на очередной элемент.

Первым значением переменной для суммы должен быть ноль, для произведения – единица.

Переменные s и p хранят соответственно значения суммы и произведения элементов массива. В соответствующих циклах их значения постепенно увеличиваются.



Программа на языке Паскаль:

Program pr;var a: array[1..10] of real; s, p: real; i: integer;begin for i := 1 to 10 do read(a[i]); s := 0; for i := 1 to 10 do s := s + a[i]; p := 1; for i := 1 to 10 do p := p * a[i]; writeln('Сумма элементов: ', s:10:2); writeln('Произведение элементов: ', p:20:2); end.

Нахождение среднеарифметического элементов массива.

 

Решение задачи сводится к нахождению суммы элементов массива и деление суммы на количество элементов массива.

Программа на языке Паскаль:

Program pr;var a: array[1..10] of real; s, sa: real; i: integer;begin for i := 1 to 10 do read(a[i]); s := 0; for i := 1 to 10 do s := s + a[i]; sa:=s/10; writeln(‘Среднее арифметическое: ', sa:10:2); end.

 

Подсчет элементов массива удовлетворяющим некоторым условиям

Подсчет количества элементов массива, удовлетворяющих заданному условию, производится по алгоритмам, аналогичным вычислению суммы. Отличие заключается в том, что вместо добавления элемента массива к сумме, переменная – счетчик (k) увеличивается на единицу (k=k+1). Таким образом, если вместо s=0 и s=s+ai записать k=0 и k=k+1, то получим алгоритмы подсчета количества элементов массива.

Пример

В одномерном массиве a размерностью n, вычислить количество элементов равных заданному числу B и стоящих на четных местах.

Решение

 

Program pr;var a: array[1..10] of real; k: real; i: integer;begin for i := 1 to 10 do read(a[i]); k := 0; for i := 1 to 10 do if a[i]=b then k := k + 1 writeln(‘Количество элементов равное В:= ', k); end.

 

СТРОКОВЫЙ ТИП ДАННЫХ. ПРОЦЕДУРЫ ОБРАБОТКИ СТРОКИ СИМВОЛОВ: DELETE, INSERT

С помощью процедур Insert и Delete Вы можете: вставить фрагмент из одной строки в другую, удалить фрагмент из строки.

Процедура Insert вставляет в исходную строку, начиная с указанной позиции, какую-либо другую строку. Оператор Insert(Word1,Words,4); указывает ТП, что необходимо в строку Words, начиная с 4-ой позиции (перед 4-ой позицией), ВСТАВИТЬ строку Word1.

Процедура Delete удаляет в исходной строке фрагмент определенной длины, начинающийся с указанной позиции. Так, оператор Delete(Words,2,3); удаляет из строки Words фрагмент, состоящий из трех символов и начинающийся со второй позиции.

Проиллюстрируем возможности этих двух процедур на хорошо знакомом нам слове "компьютеризация".

Program Demo_function_insert_and_delete;

 

Var

Words: STRING[79];

Word1: STRING[20];

Begin

WriteLn;

Words := 'компьютеризация';

WriteLn(Words);

Delete(Words,1,7);

WriteLn(Words);

Delete(Words,3,2);

WriteLn(Words);

Word1 := 'Г';

Insert(Word1,Words,1);

WriteLn(Words);

Word1 := 'не';

Insert(Word1,Words,3);

WriteLn(Words);

End.

В результате работы данной программы на экран будут выведены следующие строки:

компьютеризация

еризация

ерация

Герация

Генерация

 

ОПЕРАЦИИ НАД СИМВОЛЬНЫМИ ДАННЫМИ

Строка (string) - это последовательность литер.

Тип данных (string) определяет строки с максимальной длиной 255 символов. Переменная этого типа может принимать значения переменной длины.

Например,

MaxLine : string;

City : string[30]

Строковая переменная может иметь атрибут длины, определяющий ее максимальную длину.

Текущая длина строковой переменной может быть определена с помощью встроенной функции Length. для заданного значения типа string эта функция возвращает целое значение, показывающее количество литер в строке.

Выражения, в которых операндами служат строки, называются строковыми выражениями.

Над строками определены две операции:

1. Операция сцепления (+) применяется для сцепления нескольких строк в одну.

Например,

SumStr := 'Турбо'+'Паскаль'+'7.0'

2. Операции отношения (=, <>, >, <, >=, <=) проводят сравнение двух строк слева направо до первого несовпадающего символа, и та строка считается больше, в которой первый несовпадающий символ имеет больший номер в стандартной таблице обмена информацией. Результат выполнения операций отношения над строками всегда имеет булевой тип.

Например, выражение 'MS-DOS'<'MS-Dos' имеет значение True

Если строки имеют различную длину, но в общей части символы совпадают, считается, что более короткая строка меньше, чем более длинная.

Строки считаются равными, если они совпадают по длине и содержат одни и те же символы на соответствующих местах в строке.

 

СТРОКОВЫЙ ТИП ДАННЫХ. СТАНДАРТНЫЕ ФУНКЦИИ ДЛЯ ОБРАБОТКИ СТРОКИ СИМВОЛОВ: LENGTH, POS, CONCAT, COPY

Функция Length (длина) позволяет определить фактическую длину текстовой строки, хранящейся в указанной переменной (а не величину предельного размера строки, установленную при декларации):

Program Demo_Length;

Var

Word : string;

Begin

write ('Введите слово :');

readln(Word);

writeln('Это слово состоит из ',Length (Word),' букв');

End.

Функция Pos

C помощью функции Pos Вы можете осуществить поиск некоторого фрагмента в строке. Если заданный фрагмент в строке присутствует, то функция возвращает номер позиции, с которой он начинается. Если фрагмент не найден, то функция возвращает нуль. POS(X,A) находит в строке A подстроку X (позицию вхождения). Результат выполнения функции - целое число.

Функция Concat

Функция Concat (Str1,Str2,...,StrN) выполняет конкатенацию (или сцепление) строк Str1,Str2,...,StrN в том порядке, в каком они указаны в списке параметров. Сумма символов всех сцепленных строк не должна превышать 255.

Program Demo_Concat;
Var
Word : string;
Word1, Word2 : string[20];
Begin
Word1 := 'фирмы ';
Word2 := 'Microsoft';
Word := Concat('Компьютеры ',Word1,Word2);
writeln(Word); {выводится текст 'Компьютеры фирмы Microsoft'}
End.

Функция Copy

Функция Copy позволяет копировать фрагмент некоторой строки из одной переменной в другую. Вызывая эту функцию нужно указать следующие параметры: COPY(A,K,L)

имя строки, из которой должен извлекаться копируемый фрагмент,

позицию в строке, начиная с которой будет копироваться фрагмент,

число копируемых символов.

Program DemoFunctionCopy;
Var
Word : string;
Word1 : string[20];
Begin
Word := 'фирма Microsoft';
writeln(Word); {выводится текст 'фирма MICROSOFT'}
Word1 := Copy (Word,1,5);
writeln(Word1); {выводится текст 'фирма'}
End.

 









Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2019 zdamsam.ru Размещенные материалы защищены законодательством РФ.