Исправьте ошибки в программе так чтобы программа выводила информацию как указано в примере
Производительность многопоточности: объяснить, почему получены такие результаты теста
Добрый день, при реализации кодирования Хэмминга) решил кодировать каждый блок данных в отдельном.
Вычислить значения выражений. Объяснить полученные результаты
Вычислить значения выражений. Объяснить полученные результаты. n---m m--<n n++>m Что не.
Решение
b типа int, а y - float
Кроме того, что само по себе выражение мягко говоря странное, если бы компилятор его и проглотил, в память, возможно занятую чем-то другим, вписался бы этот "результат".
Скорее всего есть ещё ошибки.
А чтобы их исправлять, нужно представлять себе, что программа делать должна. К примеру первая ошибка - округлить y, или тупо дробную часть приведением к int отбросить?
последняя строка в отрывке пытается произвести запись в невыделенную память *m, так как после операции m++ указатель m переводится на следующий объект после n типа double (а его там нет)
если целая часть float помещается в int, результат будет определённым
в арифметических операциях, если int и float, то они приводятся к float и результат тоже float
если целая часть float помещается в int, результат будет определённым
в арифметических операциях, если int и float, то они приводятся к float и результат тоже float
Ну это ошибка скорее логическая. Результат-то будет, но будет ли тем, который ожидалось получить?
к примеру:
так там ошибки нету, если числа маленькие (по модулю)
Так я ж не спорю. Формально можно так делать. Но как-то в книжках, которые читал, настоятельно рекомендуют более внимательно к приведению типов относиться.
нам препод сказал что при введени разных "б" должны выводиться разные значения адресов и т.п.
а тут все каждый раз одинаково
нам препод сказал что при введени разных "б" должны выводиться разные значения адресов и т.п.
а тут все каждый раз одинаково
С какого перепуга? При объявлении переменной (int b) резервируется 4 байта памяти. При изменении значения переменной меняется содержимое этих байтов. Но это всё те же 4 байта, находящиеся по адресу, выделенному при объявлении. Другая история с указателем (int *a). После инструкции a = &b в переменной a содержится адрес переменной b, а доступ к значению переменной b можно получить "разыменовыванием" указателя а (*a = 10; if ( b == 10) /* true */ ). Если присвоить самой переменной а какое-нибудь другое значение, к примеру a = NULL, ни на значение, ни на расположение в памяти переменной b это никак не повлияет.
Для того, чтобы найти ошибку, нужно поставить в соответствие друг другу все части условного оператора if и else.
Помним, что часть else относится к ближайшему if. При этом наличие части else не обязательно.
Кроме того, часто присутствует ошибка при вводе или выводе. Обязательно нужно проверить, та ли информация выводится на экран.
Особого внимания требует инициализация переменных.
Формат книги не позволяет рассмотреть все основные типы задач 2 части, рассмотрим лишь те, которые встречались на проверочных и экзаменационных работах последних двух лет.
На обработку поступает положительное целое число, не превышающее 10 9 . Нужно написать программу, которая выводит на экран сумму цифр этого числа, меньших 7. Если в числе нет цифр, меньших 7, требуется на экран вывести 0. Программист написал программу неправильно. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.
Бейсик
Python
INPUT N
WHILE N > 0
DIGIT = N MOD 10
END IF
WEND
Паскаль
Алгоритмический язык
begin
readln(N);
while N > 0 do
begin
digit := N mod 10;
N := N div 10;
end;
writeln(digit)
нач
цел N, digit, sum
ввод N
нц пока N > 0
все
кц
вывод digit
Си
int main()
int N, digit, sum;
while (N > 0)
if (digit < 7)
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 456.
2. Приведите пример такого трёхзначного числа, при вводе которого программа выдаёт верный ответ.
3. Найдите все ошибки в этой программе (их может быть одна или несколько). Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк. Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.
Достаточно указать ошибки и способ их исправления для одного языка программирования. Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Решение использует запись программы на Паскале. Допускается использование программы на любом из четырёх других языков.
1. Программа выведет число 4.
2. Пример числа, при вводе которого программа выдаёт верный ответ: 835.
Программа работает неправильно из-за неверной выводимой на экран переменной и неверного увеличения суммы. Соответственно, программа будет работать верно, если в числе старшая цифра (крайняя левая) равна сумме цифр, меньших 7.
3. В программе есть две ошибки.
Первая ошибка. Неверное увеличение суммы.
Строка с ошибкой:
sum := sum + digit;
Вторая ошибка. Неверный вывод ответа на экран.
Строка с ошибкой:
Для заданного положительного вещественного числа A необходимо найти максимальное целое число K, при котором выполняется неравенство
(при K = 0 сумма считается равной 0).
Для решения этой задачи ученик написал такую программу.
Бейсик
Python
DIM K AS INTEGER
INPUT A
WHILE S < A
WEND
PRINT K
Алгоритмический язык
Паскаль
нач
вещ a, s
цел k
ввод a
нц пока s
кц
вывод k
k: integer;
begin
read(a);
end;
write(k);
Си
int main()
double a, s;
int 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 больше правильного значения.
Строка с ошибкой:
2) Неверное определение ответа. Приведённая программа находит не максимальное K, при котором выполняется неравенство, а минимальное, при котором оно не выполняется, то есть увеличивает верное значение на 1.
Кроме того, использованный порядок действий в цикле (увеличение K после увеличения S) приводит к увеличению ещё на 1. Это можно было бы исправить, изменив порядок действий в цикле и уменьшив K после завершения цикла, но эти действия не разрешены по условию задачи.
Поэтому для исправления ошибки можно просто скорректировать значение при выводе.
1.найти сумму и количество отрицательных элементов одномерного массива, состоящего из 21 элементов. элементы заполняются числами от (-25 до 15). 2. найти произведение и количество отрицательных элементов одномерного массива, состоящего из 11 элементов. элементы заполняются числами от (-20 до 10). 3.найти сумму и количество положительных элементов одномерного массива, состоящего из 34 элементов. элементы заполняются числами от (-15 до 25).
Некоторую фотографию сохранили в двух форматах: сначала как 24-разрядный рисунок, затем как 16-цветный рисунок. во сколько раз файл, полученный в первом случае, больше файла, полученного во втором случае?
Определите какие инструменты редактора были использованы при изображении воздушного змея солнце и облака
1. дано целое число а. не пользуясь никакими арифметическими операциями, кроме умножения, получите а19 за 6 операций. можно использовать дополнительные переменные2. составьте программу на языке паскаль для вычисления y по формуле , где - заданное целое число.3. определите значения переменных a, b, c, x после выполнения программы на паскале, если при вводе их значения равны a=15, b=5, c=10: program primer; var a, b, c, x: integer; begin readln (a, b, c); x: =a-b+c; a: =b*5; b: =с+b; с: =b; b: =a*3; writeln (‘a=’, a, ’b=’, b, ‘c=’, c, ‘x=’, x)end.4. определите значение переменной х после выполнения фрагмента программы на паскале: а: =1; в: =а/2*4; х: =2; if a< =b then x: =5 else x: =a+b-x; 5. напишите программу на паскале для решения следующей : даны два числа x и y, не равные друг другу. меньшее из этих чисел замените их частным, а большее их удвоенной разностью. 6.
Решать, ! 1. определите значения переменных s и i после выполнения фрагмента программы на паскале. 2. определите значения переменных t, которое будет выведено на экран программой на паскале. 3. определите значения переменных s и i после выполнения программы на паскале.
не уверен, что нужно сделать, но вот примерные ответы. спросите, правильно ли.
а) x (с чертой сверху)
б) a (с чертой сверху) v b
а) xy (обе переменные с чертой сверху)
изучай php, html - там моймешь что к чему. а вообше, как новичку, советую первый свой сайт попробовать написать на ucoz.ru. впринципе, там ничего и не надо знать, чтобы "написать" на данном хостиге.
Другие вопросы по Информатике
Массив а состоит из n элементов, n вводится с клавиатуры (организуйте «говорящий» ввод данных). а) заполните все элементы массива значением x , введённым с клавиатуры. б) заполните массив первыми n натуральными числами, начиная с x (значение x введите с клавиатуры). программу нужно написать в c.
Вподмосковном калининграде, на улице садовой, живут десять сотрудников цнии машиностроения: иван митков, мария зверева, леонид соболев, ольга бугрова, василий рябинин, петр моисеев, валентина морозова, илья ковалев, татьяна данилова и николай глебов. они живут в домах за №№ 1, 2, 3, 4, 5, 6, 7, 8, 9 и 10. если поделить номер дома петра моисеева на номер дома валентины морозовой – оба представляющие собой четные числа, - то получится число, обозначающее номер дома татьяны даниловой, живущей на противоположной стороне улицы с нечетными номерами. в доме напротив дома валентины морозовой живет ее подруга ольга бугрова. леонид соболев живет по соседству с домом валентины морозовой. если из номера дома леонида соболева вычесть номер дома ольги бугровой, то получится число, обозначающее номер дома, в котором живет василий рябинин. если умножить номер дома, в котором живет василий рябинин, на номер дома, в котором живет валентина морозова, то получится число, в точности соответствующее номеру дома, в котором живет иван митков. номер дома ильи ковалева нечетный, а его друга николая глебова, живущего напротив него, - четный. указать номер дома, в котором живет каждый из указанных друзей, если известно, что номер дома марии зверевой в три раза больше номера дома василия рябинина.
Хочу сделать в программе так, чтобы после не правильного ввода данных с клавиатуры, выскакивала ошибка и просьба ввести информацию снова, и это продолжается до тех пор, пока пользователь не введёт правильное значение.
Так же хочу сделать,когда пользователь вводит символы, не являющиеся числами, то опять выскакивает ошибка и просьбы ввести информацию снова, и это продолжается до тех пор, пока пользователь не введёт правильное значение.
Бесконечный повторный ввод
Всем, доброго дня! Не так давно изучаю питон. Помогите дописать программу. Нужно угадать два числа.
Заполнение массива (повторный ввод значения в случае ошибки)
const min_val=-32676; max_val=32676; n=6; var m : array of integer; s:string;.
Как сделать повторный ввод числа в случае ошибки?
Подскажите пожалуйста как сделать так чтобы во время ввода пользователем символа программа бы не.
Решение
А что делать если число может быть любым? Ведь в 5 строке вы указываете, что "n" должно ровняться 7, а число нужно любое.
Всё прошло успешно, но почему-то после этого изменения, с этими переменными нельзя ничего посчитать, т.е. я ввожу число - всё отлично, потом выводится результат 0, а должно быть нормальное число
$python fot.py
Введите число tyuyu
Введены буквы
Введите число dtd555
Введены непонятные символа
Введите число 6
36
вот мой результат(переменная "c" вводилась чуть позже):
Traceback (most recent call last):
File "C:\Users\***\PycharmProjects\untitled1\***.py", line 51, in
e = a/24*c
TypeError: unsupported operand type(s) for /: 'str' and 'int'
Yankeedoodle, на сколько сложная реализация тебе нужна? Судя по вопросу, ты пока на ветвлениях, на них приемлемо?
Добавлено через 6 минут
самое просто решение, на мой взгляд.
третья строчка может выглядеть и так:
Меню.Ввод-вывод.Проверка на ошибки ввода
Здравствуйте, помогите переделать программу без go to при чтении ввода scanf /*Задача: Напишите.
Повторный ввод строки
Всем привет! Мне нужно написать программу, которая циклически производит ввод строки. Я пытаюсь.
Читайте также: