Program NN; uses crt; var O,b:integer; s:string; k:byte; p:real; function N0(l:integer):byte; begin
repeat if l mod 10=0 then inc(l); l:=l div 10; until l=0; end; begin read (s); b:=length(s); k:=N0(s); p:=100*k/b; writeln(p); end. По заданию надо найти процент правильных ответов Условия: 1) тип записи ответов: 100101110101 2)1-правильный ответ 3)0-неправильный ответ 4)надо найти по кол. ответов и кол. правильных ответов, процент правильных ответов Примечание: Я написал программу но в ней ошибка, пытался устранить, но из-за нехватки знаний не получаетсяСреда PascalОтветы на вопрос
var
s:string;
k,kp,i:integer;
pp:real;
begin
Readln(s);
k:=Length(s);
kp:=0;
for i:=1 to k do
if s[i]='1' then kp:=kp+1;
pp:=kp/k*100;
Writeln('Дано ответов- ',k,', из них верных- ',kp,' (',pp:0:2,'%)');
end.
Пример
100101110101
Дано ответов- 12, из них верных- 7 (58.33%)
Программа, которую вы представили, имеет несколько ошибок. Вот исправленный вариант:
```pascal Program NN; uses crt;
var s: string; b, k: integer; p: real;
function N0(l: integer): byte; begin Result := 0; repeat if l mod 10 = 1 then Inc(Result); l := l div 10; until l = 0; end;
begin readln(s); b := Length(s); k := N0(b); p := (k / b) * 100; writeln(p:0:2); end. ```
Теперь давайте разберемся, как работает программа.
1. В программе определены переменные `s` (строка), `b` (длина строки), `k` (количество правильных ответов) и `p` (процент правильных ответов).
2. Функция `N0` принимает целое число `l` (количество ответов) и возвращает количество правильных ответов. Внутри функции используется цикл `repeat-until`, который проверяет каждую цифру числа `l` с помощью операции модуля (`mod`). Если цифра равна 1, то инкрементируется переменная `Result`, которая хранит количество правильных ответов. Затем число `l` делится на 10 с помощью операции деления с остатком (`div`), чтобы перейти к следующей цифре. Цикл продолжается до тех пор, пока `l` не станет равным 0.
3. В основной части программы считывается строка `s` с помощью процедуры `readln`. Далее вычисляется длина строки `b` с помощью функции `Length`.
4. Затем переменной `k` присваивается значение, возвращаемое функцией `N0`, которая принимает длину строки `b`.
5. Наконец, переменная `p` вычисляется как отношение количества правильных ответов `k` к общему количеству ответов `b`, умноженное на 100. Результат выводится на экран с помощью процедуры `writeln`.
Надеюсь, это поможет вам понять, как работает программа и исправить ошибки. Если у вас есть еще вопросы, не стесняйтесь задавать.
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili
