Все о Pascal
Главная
Вход
Регистрация
Воскресенье, 01.12.2024, 21:41Приветствую Вас, программист Гость | RSS
Меню сайта

Категории раздела
Уроки Pascal [36]
Мемы - "Типичный программист" [1]
Задачи [10]
Заработок в интернете [14]
Олимпиадные задчи [1]

Наш опрос
Оцените мой сайт
Всего ответов: 249

Статистика

Форма входа

Главная » Статьи » Уроки Pascal

Урок 17.

 Лекция 17.Функции преобразования строковых величин.
автор: Садовский Ефим Моисеевич

1. Повторение.
Строковые величины. Замена символов. Подсчет количества символов. Накопление литерных величин. Цикл While.
2. Функции преобразования строковых величин.
    Многие операции с числами гораздо проще выполнять, если предварительно их перевести в строковую величину. Для этого в Паскале используют стандартные процедуры Str и Val.
ВНИМАНИЕ! До этого дня мы в программа использовали функции, которые записывались справа от знака присваивания (sqrt(x), length(x), a mod b и др.) Процедура в отличии от функции – это отдельный оператор, который не нуждается ни в знаках присваивания, ни в дополнительных конструкциях языка. После процедур ставится точка с запятой. Примеры процедур: readln(x), writeln('X=').
    STR(X,S); – процедура преобразования целого числа Х в строковую величину S.
    STR(X:0:2,S); – процедура преобразования действительного числа Х (Х-real) в строковую величину S.
    Заметим, что при преобразовании действительных чисел необходимо использовать форматированный вид действительного числа - X:0:2, где первое число удобно всегда ставить 0, а второе - количество знаков после запятой.
    VAL(S,X,K); - процедура преобразования строковой величины S в число Х. K – признак, переменная ЦЕЛОГО типа, которая остается равна 0, если преобразование удалось или, если преобразование не состоялось, ей присваивается номер первого символа, который не удалось преобразовать.
Например, после выполнения процедуры:
VAL('35',X,K);                 - X=35,K=0
S:='3.4'; VAL(S,X,K);      - S='3.4', X=3.4, K=0
S:='3:4'; VAL(S,X,K);      - S='3:4', X не определено, K=2
    С числами в виде строки удобно:
- заменять цифры на указанные;
- подсчитывать количество цифр в числе;
- подсчитывать количество указанных цифр;
- находить сумму цифр;
- менять цифры местами (зная их порядковые номера);
С числами в виде строки нельзя:
- выполнять арифметические операции;
- вычислять значение математических функций.

Пример 1. 
    С клавиатуры вводится набор символов. Можно ли сказать, что это число?
Program p1;
 var s:string;
 k:integer;
 x:real;
 begin
 write('Введите набор символов: ')
 readln(s);
 val(s,x,k);
 if k=0 then writeln('Введено число!')
 else writeln('Введенный набор символов - не число!')
 end.
Пример 2. 
Вычислить сумму цифр целого числа.
Program p2;
 var s:string;
 x,sum,i,k:integer;
 begin
 write('Введите целое число =')
 readln(s);
 sum:=0;
 for i:=1 to length(s) do
 begin
 val(s[i],x,k);
 sum:=sum+x;
 end;
 writeln('Полученная сумма: ',sum);
 end.
    Обратите внимание на то, что исходное число мы вводим как строковую величину, а затем процедурой VAL преобразуем каждый символ, то есть каждую цифру этой строковой величины в число, которое прибавляем к предыдущей сумме.
Пример 3. 
С С клавиатуры вводится целое число. Возведите его в квадрат и затем замените все цифры в записи полученного числа, большие пяти, на единицы.
Program p3;
 var s:string;
 x,n,sum,i,k:integer;
 begin
 write('Введите целое число =')
 readln(x);
 n:=x*x;
 str(n,s);
 for i:=1 to length(s) do
 if s[i]>'5' then s[i]:='1';
 val
 writeln('Полученное число: ',s);
 end.
3. Решение задач.Pascal.
1. С клавиатуры вводятся два целых числа. Сколько раз в записи их суммы встречается цифра 1?
2. С клавиатуры вводится целое число. Запишите его наоборот (справа налево) и результат умножьте на 3.
3. С клавиатуры вводится целое число N (N>1000). Замените вторую и последнюю цифры на 3. Результат увеличьте в два раза. Сколько в полученном числе шестерок?

Категория: Уроки Pascal | Добавил: yurabobr1 (13.11.2012)
Просмотров: 4077 | Комментарии: 1 | Теги: преобразование, строковый, процедура, число, целое, val, величина, символ, sum, цифра | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz


  • Copyright MyCorp © 2024