Задание 1 ( ). Приведите общую характеристику языка Паскаль. Какова структура программы на Паскале?
Задание 2 ( ).
Составить блок-схему алгоритма и программу на Паскале для вычисления функций z. Ввести программу в Паскале, вычислить значения функции и проверить ее для самостоятельно выбранных трех пар значений переменных X и Y.
28.png
Задание 3 ( ).
Составить блок-схему алгоритма и программу для обработки массива из 20 чисел X=(0,3;5;68;-3;32;-80;-9;-26;-9;40;36;13;15;28;-0,7;-36;-0,3;8;15;-7) при b=5. Вычислить произведение и количество элементов, не равных нулю и меньших b.
Задание 4 ( ).
Составить программу и блок-схему для вычисления суммы площадей всех квадратов, стороны которых изменяются в цикле от 1 до 10. В отчет включить тексты программ на Паскале, результаты работы в виде скриншотов окна программы с отображением кодов и результатов работы.
Вы немного не понимаете, что такое локальные переменные.
Давайте объясню.
Локальными называются переменные, объявленные внутри функции и доступные только ей самой. Программный код за пределами функции к ним доступа не имеет. В этом и ошибка, Вы вызываете функцию differ() и применяете переменные, которые находятся в count_number() и suma_number(). Локальные переменные скрыты от других функций.
Чтобы избежать ошибки, как вариант, можно создать глобальную переменную:
1. Пишем перед функцией глоб. переменную
suma = 0
def suma_number(number):
pass
2. Присваиваем значение глобальной переменной внутри функции с ключевое слово global:
suma = 0
def suma_number(number):
global suma
pass
Полная программа:
number = int(input('Введите число: '))
suma = 0
def suma_number(number):
global suma
while number > 0:
digit = number % 10
suma = suma + digit
number = number // 10
print('\nСумма цифр:', suma)
suma_number(number)
digitcount = 0
def count_number(number):
global digitcount
countnumber = number
while countnumber > 0:
digitcount += 1
countnumber = countnumber // 10
print('Кол-во цифр в числе:', digitcount)
count_number(number)
def differ(suma, digitcount):
diff = suma - digitcount
print('Разность суммы и кол-ва цифр:', diff)
differ(suma, digitcount)
Можно обойтись и без глоб. переменных:
Когда Вы вызываете функцию differ(), не используйте локальные переменные из других функций, просто вызовите эти функции:
differ(suma_number(number), count_number(number))
Кстати, если задуматься, код можно сделать проще:
def suma_number(a):
return sum(map(int, list(a)))
def count_number(a):
return len(a)
def differ(a, b):
return a - b
n = input('Введите число: ')
print('Сумма цифр:', suma_number(n))
print('Кол-во цифр в числе:', count_number(n))
print('Разность суммы и кол-ва цифр:', differ(suma_number(n), count_number(n)))
Хотя можно и совсем "извращение" сделать без функций в 2 строчки..
n = input('Введите число: ')
print('Сумма цифр:', sum(map(int, list(n))), '\nКол-во цифр в числе:', len(n), '\nРазность суммы и кол-ва цифр:', sum(map(int, list(n))) - len(n))
Это так, пища для размышления.