#17 Явное приведение типа в Паскаль -- преобразование строки в число

В этом уроке речь пойдёт о явном приведении (конвертации, преобразовании) строки в число.

Что нужно знать

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

Задачи для самостоятельного решения

  1. Пользователь вводит строку, проверьте является ли она числом, если да, то выведите в ответ это число, иначе сообщите об ошибке.
  2. Пользователь вводит строку произвольных символов, посчитайте количество цифр в ней, численное значение которых больше либо равно $5$.
  3. Пользователь вводит произвольную строку, посчитайте количество чисел в ней - тех, что больше $125$. Например, в строке:
    123ret34#2145esrt5

    такое число только одно и это:

    2145

    (сначала выделите эти числа из строки и запишите их в массив (of integer), а затем уже посчитайте число тех, что больше $125$)

  4. Пользователь вводит в консоль строку вида:
    Имя         123

    -- т.е. слева имя и через произвольное количество пробелов число баллов. Разберите эту строку получив имя пользователя как значение в переменной типа string и число баллов в перееменной типа integer;

  5. Пользователь вводит в консоль строки вида (имя + произвольное число пробелов + балл):
    Вася         485
    Коля       555
    Юра        61
    ..........
    ....
    end // признак завершения ввода
    

    (пока не введёт строку end) -- где слева указаны имена участников, а справа -- число баллов.
    Используя массив строк и массив целых чисел (пусть оба массива будут максимальной длины =3) считайте отдельно имена и баллы и определите победителя, выведя его имя и полученный им балл.

  6. Решите предыдущую задачу:

    Пользователь вводит в консоль строки вида (имя + произвольное число пробелов + балл):

    Вася         485
    Коля       555
    Юра        61
    ..........
    ....
    end // признак завершения ввода
    

    (пока не введёт строку end) -- где слева указаны имена участников, а справа -- число баллов.
    Используя массив строк и массив целых чисел (пусть оба массива будут максимальной длины =3) считайте отдельно имена и баллы и определите победителя, выведя его имя и полученный им балл.

    С использованием процедуры, которая разбирала бы очередную строку, изменяя по ссылке значения двух перемененных (одна для имени и одна для балла) -- уже после вызова этой процедуры для очередной строке записывая очередные значения переменных в массивы (каждую в свой).

  7. Пользователь вводит в консоль строки вида (имя + произвольное число пробелов + балл 1 + произвльное число пробелов + балл 2):
    Вася    16     485
    Коля    17   555
    Юра     18   61
    ..........
    ....
    end // признак завершения ввода
    

    (пока не введёт строку end) -- где слева указаны имена участников, а справа -- число баллов.
    Первое число в каждой строке -- штрафные баллы набранные участниками, а второе число -- "положительные баллы", то есть если у нас есть строка:

    Vasya    N      M

    где $N$ -- число шрафных баллов, а $M$ - число баллов положительных, то итоговая оценка Васи $Z$ вычисляется как разность:
    $$Z = M - N.$$
    Напишите программу, которая определяет победителя и его итоговый балл (используя данные, вводимые пользователем)

vedro-compota's picture

Возможно, при решении задач будет полезен пример возврата массива из функции.

_____________
матфак вгу и остальная классика =)