Строковый тип данных. Приемы решения задач
Оценка 4.8

Строковый тип данных. Приемы решения задач

Оценка 4.8
Презентации учебные
ppt
информатика
10 кл—11 кл
29.05.2017
Строковый тип данных. Приемы решения задач
Данный методический материал вводит в тему строковый и символьный тип данных на языке программирования Паскаль. В качестве примера применения данного типа в решении задач выбрана одна из тем: длинная арифметика. Данный пример показывает как удобно использовать литерные переменные в качестве массивов.Учебная презентация на тему "Строковый и символьный тип данных"
Строковый тип данных. Приемы решений.ppt

Строковый тип данных. Приемы решения задач

Строковый тип данных. Приемы решения задач
Строковый и символьный  типы данных. Основные операции. Многоразрядная арифметика: приемы строковых  решений. Основы программирования Черевичкина И.Н.

Строковый тип данных. Приемы решения задач

Строковый тип данных. Приемы решения задач
Строковый тип данных Строка символов – это упорядоченная  последовательность любого, в том числе и  равного нулю, количества символов из набора  ASCII, расположенных в одной строке и  заключенных в апострофы (<=255 символов) Если  необходимо в строку записать символ апостроф, то его следует  записать дважды. Например: ‘Язык ‘’Турбо  Паскаль’’’ Результат:  Язык ‘Турбо  Паскаль’ Описание: Var   S:STRING;  C:STRING[120];

Строковый тип данных. Приемы решения задач

Строковый тип данных. Приемы решения задач
Символьный тип данных Символьная константа – строка из одного  символа. Например:                        var  Z:char;                     Begin                                Z:=‘7’;                     end.

Строковый тип данных. Приемы решения задач

Строковый тип данных. Приемы решения задач
Операции с переменными строкового и  символьного типа данных 1. VAL(S,N,AA) ­  преобразование переменной  строкового типа в числовой (S  в N). Где  S –строка, N –число в которое преобразуется S.  AA – код – переменная типа integer; Например: VAL(’25’, D, AA); Результат: D=25. 2. STR(N,S)  ­ перевод числа в строковую  переменную Например:                                     N:=23;    STR(N, S); Результат: S=’23’.

Строковый тип данных. Приемы решения задач

Строковый тип данных. Приемы решения задач
3. Copy(S,n1,Count)  ­ копирование символа  начиная с   N1  количеством   Count.      Например: d:=COPY(‘AZBUKA’,3,4)  ­ скопируй  из  строки ‘AZBUKA’, начиная  с 3­го символа   количеством 4. Результат: D=‘BUKA’. 4. Length(S)  ­ определение длины переменной     Пример:  S:=‘Dog’; DL:=length(S)                      DL1:=length(‘Winter’); Результат:  DL=3;    DL1=6

Строковый тип данных. Приемы решения задач

Строковый тип данных. Приемы решения задач
5. DELETE(S,2,3)  ­ удалит  из  переменной S  три символа, начиная со 2­го. Пример:            S:’Name’, DELETE(S,2,3) Результат:    S=‘N’ 6. INSERT(S,Z,P)  ­ поместить S  в  Z, начиная с P Пример: S:=‘Алиса ’; Z:=‘в стране  чудес’;                     INSERT(S,Z,1) Результат: Z=‘Алиса в стране чудес’ 7.Concat(S1,S2,S3)  ­  сцепление строк S1,S2,S3 Пример: S1:=‘Травка ‘; S2:=‘зеленеет, ’;  S3:=‘солнышко блестит’;  s4:=Concat(s1,s2,s3); Результат: s4=‘Травка зеленеет, солнышко блестит’

Строковый тип данных. Приемы решения задач

Строковый тип данных. Приемы решения задач
8. Обращение  к  символам строковой переменной  как к элементу  массива, каждый элемент которого  типа Char:    s:=‘Погода’ S[3]=‘г’ П о г о д а 1 2 3 4 5 6 9. d:=POS(ps,s)  номер позиции  вхождения подстроки PS в строку S D:=POS(‘kot’,’nash kot Vasjka’);  D равно 6.

Строковый тип данных. Приемы решения задач

Строковый тип данных. Приемы решения задач
Прием замены значения элемента на другой   символ типа String. 1. Создать литерную константу:       CONST S=‘0123456789’ 2. Например дано длинное число, которое возможно прочитать только  типом STRING.  Ch_1:=‘12345267190001’ 3. Нужно прибавить к заданному числу другое число Ch_2; 4. Можно брать символы по очереди начиная с самого маленького  разряда, переводить в тип целых чисел (Val(Ch_1[i], Ch_INT,d) и  складывать по правилам позиционной системы счисления. 5. После того как будет определено какая именно цифра должна  стоять на месте Ch_1[i], нужно сделать присвоение символа константы,  стоящего на позиции Cif+1, так как на первой позиции стоит 0. Например: Dobavka_Razryada:=0; {_____________________Тело цикла____________________} Ch_1:=‘12345267190001’,  Сh_2:=9, Val(Ch_1[i], Ch_INT,d),  Sum_Cif:=Ch_INT+Ch_2+Dobavka_Razryada;  Dobavka_Razryada:=Sum_Cif DIV 10; OST:=Sum_Cif MOD 10; Ch_1[i]:=S[OST+1];   {Замена символа из соответствующим из  константы}

Строковый тип данных. Приемы решения задач

Строковый тип данных. Приемы решения задач
1) В предыдущем примере мы разобрали, только как нужно прибавить к  одному разряду, данный набор действий нужно оформить в цикле Пока: с постусловием или предусловием.  Условия окончания работы: Условие продолжения работы:   добавка =0 или i=0. i>0 и Dоbavka_Razryada<>0 2) После прохождения по всему длинному числу (либо  раньше)  цикл закончит свою работу, если после работы  цикла в переменной Dobavka_Razryada<>0, то это  означает, что число  должно увеличиться на один разряд,  поэтому после цикла нужно проверить состояние  переменной Dobavka_Razryada при необходимости  изменить результирующее число: Ch_1:= S[Dobavka_Razryada+1]+Ch_1; Например:    ‘99’+5    1)9+5=14, Dobavka_Razryada=1,  Сh_1=’94’ 2) 9+1=10, Dobavka_Razryada=1, Ch_1=’04’ После цикла: Ср1=‘1’+’04’=‘104’

Строковый тип данных. Приемы решения задач

Строковый тип данных. Приемы решения задач
Задание №1: Напишите программу складывающую  многозначное число с однозначным в  десятичной системе счисления: А) При помощи цикла с постусловием. Б) При помощи цикла с предусловием. В) При помощи цикла «Повтори N раз». Г) Без цикла. (при помощи возврата на  метку) Ко всем алгоритмам нарисовать блок­схемы и  представить копии экранов со значениями: 1)9111019+7, 2)9999999998+5,  3)7000000008+2, 4)10063+8.

Строковый тип данных. Приемы решения задач

Строковый тип данных. Приемы решения задач
Задача «Финансы»  • «Курс валюты Зимбабве опустился накануне до рекордно низкого уровня ­ 1,2  млрд. зимбабвийских долларов за один доллар США»  (Новости от 7.06.2009) В некоторой стране инфляция достигла таких размеров, что доходы граждан  стали выражаться числами, количество знаков в десятичной записи которых доходит  до 200. Это сильно усложнило задачу взимания налогов.  Один из налогов на доходы составляет 1%. Напишите программу, которая по  введенному числу D (величине дохода гражданина) вычислит этот налог. При этом применяются следующие правила округления: •Если налог выражается целым числом, то он не округляется. •Если налог выражается дробным числом, то он округляется в сторону большего  целого (в пользу государства). Формат входных данных Вводится одно число D (натуральное, 105 ≤ D < 10200) – величина дохода  гражданина. Формат выходных данных Выведите одно натуральное число – величину налога. Примеры Входные данные Выходные данные 1000001 12345600 10001 123456

Строковый тип данных. Приемы решения задач

Строковый тип данных. Приемы решения задач
Рассмотрим алгоритм решения задачи «Финансы» часть 1: 1. Для решения этой задачи нужно предусмотреть работу с  длинным числом, так как ни один числовой тип не поддерживает  работу с 200­т с знаками. Поэтому можно представить число как  строковую переменную (одномерный массив литер) или массив  целых чисел (отдельная цифра). 1. Считываем заданное число в литерную переменную S. 2. Находим длину литерной переменной: DL:=length(S);  2. Для того, чтобы найти один % от числа его нужно поделить на  100. Таким образом два последних знака нашей переменной  являются дробной частью числа равного 1% от заданного числа.  Поэтому наша задача проверить эти два символа: если хотя бы  один из них не равен символу  ‘0’, то по правилам Зимбабве нужно  округлить налог в пользу  государства, т.е. прибавить 1 к целой  части. 3. Например:  дано число 99999901, ответ: 1000000                                                  7800                       78

Строковый тип данных. Приемы решения задач

Строковый тип данных. Приемы решения задач
Алгоритм решения задачи «Финансы»  часть 2: 1. If (S[dL]<>’0’) OR (S[dL­1]) then begin Delete(S,dl­1,2); DL:=DL­2;  end;   ­ отрезали два последних символа и изменили переменную длины на 2.   2. С измененной переменной S пройти алгоритм прибавления 1  в  десятичной системе счисления:  a) Заведем переменную DR:=1 (добавление разряда); заведем  константу S_cif=‘0123456789’; b) Начиная с последней цифры: 1) Переводим символ в цифру (VAL(S[i],cif,AA)).  2) Находим сумму цифры и переменной DR. (Sum:=cif+DR). 3) Находим остаток от деления SUM на 10 (OST:=sum mod 10). 4) Находим целое количество раз вхождения 10­ки в SUM и  полученное число сохраняем в DR (DR:=SUM div 10). 6) Заменяем i­й символ на символ из константы S[i]:=S_Cif[ost]. c) Весь процесс пункта B нужно повторить, если DR>0. Поэтому  выгодно организовать цикл  с постусловием: i:=1; Repeat  действия; i:=i­1   Until (DR=0)Or (i=0). d) После окончания цикла нужно проверить переменную DR, если  она >0, то окончательное значение числа: S:=S_cif[DR+1]+S;

Строковый тип данных. Приемы решения задач

Строковый тип данных. Приемы решения задач
ЗАДАНИЕ: Напишите программу, выполняющую округление числа  по принципу страны Замбабве. Входные данные в  файле input.txt, выходные в файле OUTPUT.TXT. Проверьте числа:  Дано:                    99999999999999999991  Ответ:                   1000000000000000000   Дано:             10000000000000000002 Ответ:                 100000000000000001
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.
29.05.2017