Найдите ошибки в программе(паскаль) program exmpl var C : char begin write (‘Введите длины трех сторон треугольника : ’) read (A, B, C) write (‘Треугольник со сторонами ’, a, b, c) if a + b > ; c and b + c > ; a and a + c > ; b then write (‘существует.
’) else write (‘не существует.
’) end.
Вы находитесь на странице вопроса Найдите ошибки в программе(паскаль) program exmpl var C : char begin write (‘Введите длины трех сторон треугольника : ’) read (A, B, C) write (‘Треугольник со сторонами ’, a, b, c) if a + b > ; c an? из категории Информатика.
Уровень сложности вопроса рассчитан на учащихся 10 — 11 классов. На странице
можно узнать правильный ответ, сверить его со своим вариантом и обсудить
возможные версии с другими пользователями сайта посредством обратной связи.
Если ответ вызывает сомнения или покажется вам неполным, для проверки
найдите ответы на аналогичные вопросы по теме в этой же категории, или создайте
новый вопрос, используя ключевые слова: введите вопрос в поисковую строку,
нажав кнопку в верхней части страницы.
Evri 0 / 0 / 0 Регистрация: 23.09.2010 Сообщений: 15 |
||||
1 |
||||
найти ошибку в программе23.09.2010, 22:24. Показов 952. Ответов 12 Метки нет (Все метки)
после оператора while (на заполнение массива) прога не идёт…. Задание следующее: В данном числовом массиве определить количество элементов массива, больших среднего арифметического
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
23.09.2010, 22:24 |
Ответы с готовыми решениями: Найти ошибку в программе! Найти ошибку в программе Найти ошибку в программе Найти ошибку в программе 12 |
47 / 47 / 13 Регистрация: 30.08.2010 Сообщений: 106 |
|
23.09.2010, 22:31 |
2 |
А можно немного на свой лад переделать, думаю, проще получится?
0 |
0 / 0 / 0 Регистрация: 23.09.2010 Сообщений: 15 |
|
23.09.2010, 22:34 [ТС] |
3 |
ну тольк не сильно))) я же могу чего-то не понять если сильно продвинуто……
0 |
krvnk 13 / 13 / 10 Регистрация: 01.04.2010 Сообщений: 174 |
||||
23.09.2010, 22:37 |
4 |
|||
0 |
0 / 0 / 0 Регистрация: 23.09.2010 Сообщений: 15 |
|
23.09.2010, 22:41 [ТС] |
5 |
а k это знач счётчик для количества эл-ов, больше ср.ариф?
0 |
IVoLution 47 / 47 / 13 Регистрация: 30.08.2010 Сообщений: 106 |
||||
23.09.2010, 22:43 |
6 |
|||
Я все-таки свой доделал. Может пригодится ещё)
0 |
13 / 13 / 10 Регистрация: 01.04.2010 Сообщений: 174 |
|
23.09.2010, 22:43 |
7 |
да это счёткчик
0 |
0 / 0 / 0 Регистрация: 23.09.2010 Сообщений: 15 |
|
23.09.2010, 22:47 [ТС] |
8 |
ты её запускал? сначала 94 ошибка, там просит после end в середине «.» если его убрать то ваще запрашивает на один элемент больше чем размер и больш ничо не делает
0 |
47 / 47 / 13 Регистрация: 30.08.2010 Сообщений: 106 |
|
23.09.2010, 22:50 |
9 |
Это ты мне? У меня все работает, несколько раз испытывал. Проверь, мож не правильно списал код.
0 |
633 / 376 / 7 Регистрация: 25.05.2010 Сообщений: 1,372 |
|
23.09.2010, 22:51 |
10 |
Обычно такие простые программы исследуются пошагово с использованием Деббагера. Выводятся переменные для просмотра и на каждом шаге смотрятся значения
0 |
0 / 0 / 0 Регистрация: 23.09.2010 Сообщений: 15 |
|
23.09.2010, 23:00 [ТС] |
11 |
IVoLution тебе) она даж у мну не запускается из-за ошибки…. Добавлено через 5 минут
0 |
633 / 376 / 7 Регистрация: 25.05.2010 Сообщений: 1,372 |
|
23.09.2010, 23:11 |
12 |
Evri,
0 |
0 / 0 / 0 Регистрация: 23.09.2010 Сообщений: 15 |
|
23.09.2010, 23:16 [ТС] |
13 |
ну на 14 так и есть S присваиваем 0 прост тут чо то нет а у мну в проге есть.. а на 19 мы считываем среднее арифметическое.хотя незачем.. правильную прогу кинули.. там по-другому
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
23.09.2010, 23:16 |
13 |
Автор материалов — Лада Борисовна Есакова.
Самая распространенная ошибка, которую нужно найти и исправить – это неправильное использование вложенных условных операторов. Для усложнения поиска возможно неправильное форматирование текста (неправильно поставленные отступы).
Для того, чтобы найти ошибку, нужно поставить в соответствие друг другу все части условного оператора if и else.
Помним, что часть else относится к ближайшему if. При этом наличие части else не обязательно.
Кроме того, часто присутствует ошибка при вводе или выводе. Обязательно нужно проверить, та ли информация выводится на экран.
Особого внимания требует инициализация переменных.
Формат книги не позволяет рассмотреть все основные типы задач 2 части, рассмотрим лишь те, которые встречались на проверочных и экзаменационных работах последних двух лет.
Пример 1.
На обработку поступает положительное целое число, не превышающее 109. Нужно написать программу, которая выводит на экран сумму цифр этого числа, меньших 7. Если в числе нет цифр, меньших 7, требуется на экран вывести 0. Программист написал программу неправильно. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.
Бейсик |
Python |
DIM N, DIGIT, SUM AS LONG
INPUT N SUM = 0 WHILE N > 0 DIGIT = N MOD 10 IF DIGIT < 7 THEN SUM = SUM + 1 END IF N = N 10 WEND PRINT DIGIT |
N = int(input())
sum = 0 while N > 0: digit = N % 10 if digit < 7: sum = sum + 1 N = N // 10 print(digit) |
Паскаль |
Алгоритмический язык |
var N, digit, sum: longint;
begin readln(N); sum := 0; while N > 0 do begin digit := N mod 10; if digit < 7 then sum := sum + 1; N := N div 10; end; writeln(digit) end. |
алг
нач цел N, digit, sum ввод N sum := 0 нц пока N > 0 digit := mod(N,10) если digit < 7 то sum := sum + 1 все N := div(N,10) кц вывод digit кон |
Си |
|
#include
int main() { int N, digit, sum; scanf(«%d», &N); sum = 0; while (N > 0) { digit = N % 10; if (digit < 7) sum = sum + 1; N = N / 10; } printf(«%d»,digit); return0; } |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 456.
2. Приведите пример такого трёхзначного числа, при вводе которого программа выдаёт верный ответ.
3. Найдите все ошибки в этой программе (их может быть одна или несколько). Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк. Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.
Достаточно указать ошибки и способ их исправления для одного языка программирования. Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Решение:
Решение использует запись программы на Паскале. Допускается использование программы на любом из четырёх других языков.
1. Программа выведет число 4.
2. Пример числа, при вводе которого программа выдаёт верный ответ: 835.
Программа работает неправильно из-за неверной выводимой на экран переменной и неверного увеличения суммы. Соответственно, программа будет работать верно, если в числе старшая цифра (крайняя левая) равна сумме цифр, меньших 7.
3. В программе есть две ошибки.
Первая ошибка. Неверное увеличение суммы.
Строка с ошибкой:
sum := sum + 1;
Верное исправление:
sum := sum + digit;
Вторая ошибка. Неверный вывод ответа на экран.
Строка с ошибкой:
writeln(digit)
Верное исправление:
writeln(sum)
Пример 2.
Для заданного положительного вещественного числа A необходимо найти максимальное целое число K, при котором выполняется неравенство
(при K = 0 сумма считается равной 0).
Для решения этой задачи ученик написал такую программу.
Бейсик |
Python |
DIM A, S AS DOUBLE
DIM K AS INTEGER INPUT A K = 1 S = 1 WHILE S < A S = S + 1.0/K K = K + 1 WEND PRINT K END |
a = float(input())
k = 1 s = 1 while s < a: s = s + 1.0/k k = k + 1 print(k) |
Алгоритмический язык |
Паскаль |
алг
нач вещ a, s цел k ввод a k := 1 s := 1 нц пока s<a s := s + 1.0/k k := k + 1 кц вывод k кон |
var a, s: real;
k: integer; begin read(a); k := 1; s := 1; while s<a do begin s := s + 1.0/k; k := k + 1; end; write(k); end. |
Си |
|
#include <stdio.h>
int main(){ double a, s; int k; scanf(«%lf»,&a); k = 1; s = 1; while (s<a) { s = s + 1.0/k; k = k + 1; } printf(«%d», k); return 0; } |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 1.2.
2. Приведите пример числа, при вводе которого программа даст верный ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько).
Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
Обратите внимание: вам нужно исправить приведённую программу, а не написать свою. Вы можете только исправлять ошибочные строки; удалять строки или добавлять новые строки нельзя. Постарайтесь также не внести новые ошибки – за это оценка снижается.
Решение:
Решение использует запись программы на Паскале. Допускается использование программы на других языках.
1. При вводе числа 1.2 программа выведет число 2.
2. Примеры чисел, при вводе которых программа выводит верный ответ: 1.6, 2.05.
Программа содержит две ошибки, одна из которых приводит к увеличению ответа, другая – к уменьшению.
В некоторых случаях эти ошибки компенсируют друг друга, и ответ оказывается правильным. Это происходит, если значение A попадает в один из следующих диапазонов: 1.5 < A < 1.83, 2 < A < 2.08.
3. Программа содержит две ошибки.
1) Неверная инициализация. Начальное значение S должно быть равно нулю.
В приведённом варианте вычисленная сумма оказывается на 1 больше правильного значения.
Строка с ошибкой:
s := 1;
Правильная строка:
s := 0;
2) Неверное определение ответа. Приведённая программа находит не максимальное K, при котором выполняется неравенство, а минимальное, при котором оно не выполняется, то есть увеличивает верное значение на 1.
Кроме того, использованный порядок действий в цикле (увеличение K после увеличения S) приводит к увеличению ещё на 1. Это можно было бы исправить, изменив порядок действий в цикле и уменьшив K после завершения цикла, но эти действия не разрешены по условию задачи.
Поэтому для исправления ошибки можно просто скорректировать значение при выводе.
Строка с ошибкой:
write(k);
Правильная строка:
write(k-2);
Спасибо за то, что пользуйтесь нашими материалами.
Информация на странице «Задача №24. Исправление ошибок в программе.» подготовлена нашими редакторами специально, чтобы помочь вам в освоении предмета и подготовке к ЕГЭ и ОГЭ.
Чтобы успешно сдать нужные и поступить в высшее учебное заведение или техникум нужно использовать все инструменты: учеба, контрольные, олимпиады, онлайн-лекции, видеоуроки, сборники заданий.
Также вы можете воспользоваться другими статьями из разделов нашего сайта.
Публикация обновлена:
07.06.2023
Даны двумерные массивы. a[5,5], b[4,4],c[6,6]
Найти произведение и сумму элементов не выше главной диагонали.
Program zad1; Type mas=array[1..6,1..6] of integer; Var a,b,c:mas; n,i,j,S,P:integer; Procedure full(a:mas; n:integer; S,P:integer); Var i,j:integer; Begin S:=0; P:=1; For i:=1 to n do For j:=1 to n do If (i>=j)then begin S:=s+a[i,j]; P:=P*a[i,j]; end; end; Procedure r(a:mas; n:integer); Var i,j:integer; Begin Randomize; For i:=1 to n do For j:=1 to n do a[i,j]:=random(50); end; Begin n:=5; r(a,5); full(a,5,S,P); Writeln('S=',S); Writeln('P=',P); n:=4; r(b,4); full(b,4,S,P); Writeln('S=',S); Writeln('P=',P); n:=6; r(c,6); full(c,6,S,P); Writeln('S=',S); Writeln('P=',P); end.
Найди ошибку в программе
30.11.2020.
Тест. Информатика, 9 класс
Внимание! Все тесты в этом разделе разработаны пользователями сайта для собственного
использования.
Администрация сайта не
проверяет возможные ошибки,
которые могут встретиться в тестах.
Задания на знание структуры программы на языке Паскаль, а также форматов операторов присваивания, ввода и вывода
Список вопросов теста
Вопрос 1
Найдите ошибку в программе:
program ;
var a,b,c,d,f,p:integer;
begin
writeln(‘Введите 5 численных значений:’);
readln(a,b,c,d,f );
p:=a+b+c+d+f;
writeln(‘p=’,p);
end.
Варианты ответов
- отсутствует имя программы
- имя программы написано не правильно
- отсутствует раздел переменных
Вопрос 2
Найдите ошибку в программе:
program Prim 2 1;
var a,b,c,d,f,p:integer;
begin
writeln(‘Введите 5 численных значений:’);
readln(a,b,c,d,f );
p:=a+b+c+d+f;
writeln(‘p=’,p);
end.
Варианты ответов
- отсутствует раздел переменных
- имя программы написано неправильно
- отсутствует имя программы
Вопрос 3
Найдите ошибку в программе:
program Prim_2_1;
begin
writeln(‘Введите 5 численных значений:’);
readln(a,b,c,d,f );
p:=a+b+c+d+f;
writeln(‘p=’,p);
end.
Варианты ответов
- имя программы написано не правильно
- отсутствует раздел переменных
- отсутствует ввод данных
Вопрос 4
Найдите ошибку в программе:
program Prim_2_1;
var a,b:integer;
begin
writeln(‘Введите 5 численных значений:’);
readln(a,b,c,d,f );
p:=a+b+c+d+f;
writeln(‘p=’,p);
end.
Варианты ответов
- не все переменные описаны в разделе описания переменных
- отсутствует раздел переменных
- отсутствуют вычисления в программе
Вопрос 5
Найдите ошибку в программе:
program Prim_2_1;
var a,b,c,d,f,p:integer;
begin
writeln(‘Введите 5 численных значений:’);
p:=a+b+c+d+f;
writeln(‘p=’,p);
end.
Варианты ответов
- отсутствует команда начала программы
- отсутствуют вычисления в программе
- отсутствует раздел ввода данных
Вопрос 6
Найдите ошибку в программе:
program Prim_2_1;
var a,b,c,d,f,p:integer;
begin
writeln(‘Введите 5 численных значений:’);
readln(a,b,c,d,f );
writeln(‘p=’,p);
end.
Варианты ответов
- отсутствует команда завершения программы
- отсутствует команда начала программы
- отсутствуют вычисления в программе
Вопрос 7
Найдите ошибку в программе:
program Prim_2_1;
var a,b,c,d,f,p:integer;
writeln(‘Введите 5 численных значений:’);
readln(a,b,c,d,f );
p:=a+b+c+d+f;
writeln(‘p=’,p);
end.
Варианты ответов
- допущена ошибка в операторе присваивания
- отсутствует команда завершения программы
- отсутствует команда начала программы
Вопрос 8
Следующий алгоритм в результате выполнения программы находит:
program Prim_2_3;
var a,b,c,d,f,p:integer;
begin
writeln(‘Введите 5 численных значений:’);
readln(a,b,c,d,f );
p:=a+b+c;
writeln(‘p=’,p);
end
Варианты ответов
- находит сумму 4 чисел
- находит сумму 3 чисел
- находит сумму 5 чисел
Вопрос 9
Найдите ошибку в программе:
program Prim_2_1;
var a,b,c,d,f,p:integer;
begin
writeln(‘Введите 5 численных значений:’);
readln(a,b,c,d,f );
p=:a+b+c+d+f;
writeln(‘p=’,p);
end.
Варианты ответов
- допущена ошибка в операторе присваивания
- отсутствует команда начала программы
- отсутствует команда вывода результата на экран компьютера
Вопрос 10
Следующий алгоритм в результате выполнения программы находит значение выражения:
program Prim_2_2;
var y,x:integer;
begin
writeln(‘Введите x:’);
readln(x);
y:=15*x*x*x+6*x*x+18*x-29;
writeln(‘y=’,y);
end.
Варианты ответов
-
y=15x3+6x2+18x-29
-
y=15x+6x2+18x-29
-
y=5x3+6x2+18x-9