Морозов
?>

Нужна с по программированию. процедура сравнения последовательного файла (имя) и целочисленного массива структура файла: х-целое, у-вещественное сравнение осуществляется по-элементно если все значения совпали, то процедура выводит true, иначе false. я написал часть и уже program failinif; const n=8; procedure sravnenie(c: integer); var mass : array[1..n] of real; f1: file of integer; i: integer; x: integer; y: real; begin assignfile(f1, 'f1.dat'); rewrite(f1); readln(x, y); write(f1, x, y); closefile(f1); readln(mass[i]); for i: =1 to n-1 do if (mass[i]=x)and(mass[i+1]=y) then writeln('true') else writeln('false'); end; var a: integer; begin sravnenie(a); end. (паскаль)

Информатика

Ответы

Leonidovich_Elena771
Листинг программы в приложении Программа считывает файл input.txt вида 123 123.00 87 87.0000 567 87.3 987 882.45 и сравнивает integer и real записанные через пробел.
Нужна с по программированию. процедура сравнения последовательного файла (имя) и целочисленного масс
Вайнер
А код верный? Судя по тому, что в условии цикла стоит знак <=, цикл будет работать до тех пор, пока i меньше или равно некоторого числа. То есть цикл должен остановиться, когда i станет больше выбранного числа (которое нужно поставить вместо многоточия). Но в цикле стоит операция уменьшения параметра i. То есть i будет только уменьшаться! Цикл будет бесконечным!
Пример 1:
i:=5;
while i<=4 do begin writeln('Привет'); i:=i-1; end;
Цикл не сработает ни разу, т.к. условие с самого начала неверное!
Пример 2:
i:=5;
while i<=5 do begin writeln('Привет'); i:=i-1; end;
Условие верное, программа "заходит в цикл", выполняет вывод текста, а затем уменьшает значение i на 1, т.е. i=4. Далее идет автоматическая проверка условия цикла, и оно снова верное: 4<=5!
Идет снова выполнение всех операторов цикла, и опять уменьшение i на 1, то есть i=3. И снова условие цикла верное: 3<=5!
И так далее. Теперь каждое следующее значение параметра i меньше предыдущего, а значит, и условие цикла всегда верное! Цикл никогда не остановится!
Пример 3:
i:=5;
while i<=6 do begin writeln('Привет'); i:=i-1; end;
И даже если вместо многоточия поставить число более 5, получим аналогичный результат: условие верное, программа "заходит в цикл", выполняет вывод текста, а затем уменьшает значение i на 1, т.е. i=5. Далее идет автоматическая проверка условия цикла, и оно снова верное: 5<=5!
Идет снова выполнение всех операторов цикла, и опять уменьшение i на 1, то есть i=4. И снова условие цикла верное: 4<=5!
И так далее. Теперь каждое следующее значение параметра i меньше предыдущего, а значит, и условие цикла всегда верное! Цикл никогда не остановится!
Возможно, ошибка в условии цикла? Если записать while i>=3 do..., то цикл сработает 3 раза: при i, равном 5, 4, 3. Либо неверно указано действие в цикле: i:=i-1. Если записать i:=i+1, а вместо многоточия поставить i<=7, то цикл также сработает ровно 3 раза, т.к. i будет менять свое значение 5, 6, 7.
sashab82
1. Кодировка была 16 битная, а стала 8 битная. Значит, объем сообщения сократился в 2 раза (16/8=2). Тогда имеем систему уравнений: Y = X - 480 и Y = X / 2, где Y - длина нового сообщения и X - длина старого сообщения. От сюда X - 480 = X / 2, тогда X/2 = 480 а Х = 960 - это биты. Тогда, 960 / 16 = 60 символов.
2. Длина слова от 5 до 6 знаков по условию. Всего есть 2 знака (точка и тире - по условию). Тогда искомым количеством вариантов будет: количество всех возможных вариантов при 6 знаках плюс количество всех возможных вариантов при 5 знаках. Тогда ответ будет: 2ˆ6+2ˆ5 = 64 + 32 = 96.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Нужна с по программированию. процедура сравнения последовательного файла (имя) и целочисленного массива структура файла: х-целое, у-вещественное сравнение осуществляется по-элементно если все значения совпали, то процедура выводит true, иначе false. я написал часть и уже program failinif; const n=8; procedure sravnenie(c: integer); var mass : array[1..n] of real; f1: file of integer; i: integer; x: integer; y: real; begin assignfile(f1, 'f1.dat'); rewrite(f1); readln(x, y); write(f1, x, y); closefile(f1); readln(mass[i]); for i: =1 to n-1 do if (mass[i]=x)and(mass[i+1]=y) then writeln('true') else writeln('false'); end; var a: integer; begin sravnenie(a); end. (паскаль)
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

bel1-79
tsypant
shmanm26
Давид-Ольга
Veselova
Dmitrievich-Telishev
Grishanin
Aleksandrovich-Mayatskikh
arinaunknown6867
Latsukirina
gusrva3001
bel1-79
stepanova-natalie
Khlistova1488
samoilovcoc