Вопрос задан 20.02.2019 в 12:46. Предмет Информатика. Спрашивает Медведь Миша.

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
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Рахманова Дарья.
// PascalABC.NET 3.3, сборка 1561 от 02.11.2017

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%)
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Программа, которую вы представили, имеет несколько ошибок. Вот исправленный вариант:

```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`.

Надеюсь, это поможет вам понять, как работает программа и исправить ошибки. Если у вас есть еще вопросы, не стесняйтесь задавать.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос