Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

УРОК №7

РАБОТА С РАЗЛИЧНЫМИ ВИДАМИ МАССИВОВ.

Мы говорили, что массив имеет следующие атрибуты имя массива размер массива и тип массива

Сегодня мы попробуем разобраться с размерностью массива и типами данных

Давай те вспомним, какие массивы мы использовали

ТИПЫ ДАННЫХ

А имя массива

[1..5] размер массива от ячейки с номером 1 до ячейки с номером 5 всего 5 ячеек массива

Типы данных

of integer в этих ячейках могут быть занесены только целые числа(2,20,7,-3,0)

of string в этих ячейках могут храниться целые и дробный числа (2;2.7;-4.1;0;0.7)

of char в этих ячейках могут храниться символы (‘а’; ’5’; ’ф’; ’l’; ‘*’)

of в этих ячейках могут храниться слова и предложения ('white', 'red', 'blaсk', ‘green’, ‘grey’)

Два первых типа данных мы использовали в своих задачах

Попробуем разобраться с двумя другими.

Пароль имеет 7 символов и может иметь набор цифр и латинские буквы (k, l,m, p,t, z)

Определить является ли введенная информация паролем.

Задача состоит из нескольких этапов

Определим данные:

Par[0..16] of char

Ch-переменная типа char считывания данных.

I – индекс массива

J – счетчик букв пароля

K – счетчик совпавших символов

1.  Организовать заполнения массив Par символами, которые могут входить в пароль. Рассмотрим простейший способ:

Par[0]:=’0’; Par[1]:=’1’;… Par[10]:=’k’; … Par[16]:=’z’;

2.  Организовать ввод данных c помощью цикла от 1 до 7 так как в пароле 7 цифр

Каждый символ будем искать в массиве, если все символы были найдены в массиве то это пароль. Этот этап можно воспроизвести несколькими способами.

НЕ нашли? Не то? Что вы ищете?

Рассмотрим один, пусть при совпадении символа пароля и символа в таблице к счетчику K прибавляем 1

3.  Проверить K если значение K=7 то это пароль

uses crt;

var

par:array [0..16] of char;

i, j,k:integer;

ch:char;

begin

writeln ('заполнение массива par');

par[0]:='0';par[1]:='1';par[2]:='2';par[3]:='3';

par[4]:='4';par[5]:='5';par[6]:='6';par[7]:='7';

par[8]:='8';par[9]:='9';par[10]:='k';par[11]:='l';

par[12]:='m';par[13]:='n';par[14]:='p';par[15]:='t';par[16]:='z';

for i:=0 to 16 do

write (par[i]);

writeln;

k:=0;

for j:=1 to 7 do{ввод символов пароля}

begin

read(ch);

for i:=0 to 16 do

if par[i]=ch then k:=k+1{счетчик совпавших символов}

end;

{вывод заключения}

If k=7 then writeln (k,'parol') else writeln (k,'no parol');

end.

Рассмотрим задачу вводим дату в цифровом виде 7 11 а выводим 7 ноября

Можем решить эту задачу с помощью оператора выбора. А можем с помощью строкового массива mac array[1..12] of string в который введем название месяцев объем программы уменьшится в несколько раз.

Что нужно сделать создать массив mac можно сделать как и в предыдущей программе. А можно с помощью массива констант (значение в массиве не будут меняться мы будем только сравнивать введенные значения с данными массива)

Вспомним – раздел констант задается перед разделом переменных var/

Const mac array [1..12] of string размер массива а далее присваиваем значения массива при это ставится знак = круглые скобки и значения вводятся в ковычках=('январь','февраль','март','апрель','май','июнь','июль','август','сентябрь','октябрь','ноябрь','декабрь');

Если вводятся символьные данные

mec: array [0..9] of char =

('0','1','2','3','4','5','6','7','8','9');

Если вводятся целые данные

mec: array [0..9] of integer =

(7,-4,8,9,-5,1,1,3,11б0 Если вводятся символьные данные

mec: array [0..9] of char =

('0','1','2','3','4','5','6','7','8','9');

uses crt;

const

mec: array [1..12] of string =

('января','февраля','марта','апреля','майя','июня','июля','августа','сентября','октября','ноября','декабря');

var d, m:integer;

begin

write ('введи день и месяц 11 4');

readln (d, m);

if ((m>0) and (m<13)) then writeln(d,' ',mec[m]) else writeln ('ошибка ввода');

end.

Вспомним циклы (счетчики) вспомниm такой тип данных может быть у счетчика циклов целые и символьные

For i:=1 to 10 do

For ch:=’a’ to ’z’ do

В массивах индексы могут иметь тип Char

А i

d

e

f

g

h

A[i]

A[d]

A[e]

A[f]

A[g]

A[h]

содержимое

-4

8

-12

7

-3

A:array[‘d’..’h’] of integer

На вход программы подаются произвольные алфавитно-цифровые символы. Ввод этих символов заканчивается точкой. Требуется написать программу, которая будет печатать последовательность строчных английских букв ('a' 'b'... 'z') из входной последовательности и частот их повторения. Печать должна происходить в алфавитном порядке. Например, пусть на вход подаются следующие символы:

fhb5kmbfыshfm.

В этом случае программа должна вывести

b2

f3

h2

kl

m2

s1

{задача c4-3 c подсчет количества букв}

uses crt;

var

a2:array ['a'..'z'] of integer;{индекс массива буква}

c:char;{индекс для массива а2}

i:integer;

begin

clrscr;

repeat

read (c);

if c <> '.' then a2[c]:=a2[c]+1;

until c='.';

for c:='a' to 'z' do

if a2[c] <> 0 then writeln (c, a2[c]);

end.

Самостоятельно

1)  В командных олимпиадах по программированию для решения предлагается не более 12 задач. Команда может решать предложенные задачи в любом порядке. Подготовленные решения команда посылает в единую проверяющую систем соревнований. Вам предлагается написать эффективную, в том числе и по используемой памяти, программу, которая будет статистически обрабатывать пришедшие запросы на проверку, чтобы определить популярность той или иной задачи. Следует учитывать, что количество запросов в списке может быть очень велико, например, когда олимпиада проводится через Интернет. перед текстом программы кратко опишите используемый вами алгоритм решения задачи. На вход программе в первой строчке подается количество пришедших запросов N. В каждой из последующих N строк записан номер задачи от 1 до 12. Пример входных данных:

6

1

2

1

1

5

2

6

Программа должна вывести список всех задач, встречающихся в запросах, количества запросов по ней с указанием этого количества запросов. Каждая задача должна быть выведена только один раз. Пример выходных данных для приведенных входных данных:

1 3

2 2

5 1

6 2