Дано N чисел. Нужно подчитать сумму чисел, которые в шеснадцатиричном представлении имеют ровно две цифры и последня не буква (A, B, C, D, E, F).
Вот я сделал, но не получается, пишет ошибка. Помогите!
var
k,N:integer;
s,i:real;
a:byte;
begin
assign(input,'input.txt') ;reset(input);
assign(output,'output.txt') ;rewrite(output);
read(k);
for k:= 1 to N do
if (a[i]>15) and (a[i]<256) and (a[i] mod 16) then
s:= 0;
s:=s+a[i];
a[i]:=1/16;
s:=s+a;
write(s);
close(output);
end.
Другие языки программирования и технологии
Нужно составить программу в паскале!!
var n, s, i, x :integer;
begin
{создание файла с числами наугад}
assign(output,'input.txt');
rewrite(output);
n:=5 + random (10);
writeln (output, n);
for i:=1 to n do
write (output, random (1000),' '); {здесь конечно вместо 1000 необходимо написать 10 001, так как (0<=x<=10000).}
close (output);
{подсчет данных и вывод в отдельный файл}
assign(input,'input.txt');
reset(input);
assign(output,'output.txt');
rewrite(output);
read(n);
for i:= 1 to n do
begin
read (x);
if (x > 15) and (x < 256) and (x mod 16 < 10) then s:=s+x;
end;
writeln(s);
close(output);
close(input);
end.
begin
{создание файла с числами наугад}
assign(output,'input.txt');
rewrite(output);
n:=5 + random (10);
writeln (output, n);
for i:=1 to n do
write (output, random (1000),' '); {здесь конечно вместо 1000 необходимо написать 10 001, так как (0<=x<=10000).}
close (output);
{подсчет данных и вывод в отдельный файл}
assign(input,'input.txt');
reset(input);
assign(output,'output.txt');
rewrite(output);
read(n);
for i:= 1 to n do
begin
read (x);
if (x > 15) and (x < 256) and (x mod 16 < 10) then s:=s+x;
end;
writeln(s);
close(output);
close(input);
end.
Александр Пузач
И вам спасибо!)
1. a - byte, а обращаешься ты к переменой как к массиву.
2. Ты нигде не вводишь числа, которые надо обработать.
3. if (a[i]>15) and (a[i]<256) and (a[i] mod 16 < 10) then
4. Индекс массива не может быть вещественным числом.
4. s := 0; должно быть ДО цикла. И s - целое число. В твоей программе вообще не должно быть вещественных чисел - ТОЛЬКО ЦЕЛЫЕ.
5. s:=s+a[i]; a[i]:=1/16; - абсолютно лишнее и ошибочное.
Весь код вычислений:
s := 0;
readln(n);
for i := 1 to n do begin
read(k);
if (k >= 16) and (k <= 255) and (k mod 16 < 10) then inc(s, k)
end;
writeln(s)
2. Ты нигде не вводишь числа, которые надо обработать.
3. if (a[i]>15) and (a[i]<256) and (a[i] mod 16 < 10) then
4. Индекс массива не может быть вещественным числом.
4. s := 0; должно быть ДО цикла. И s - целое число. В твоей программе вообще не должно быть вещественных чисел - ТОЛЬКО ЦЕЛЫЕ.
5. s:=s+a[i]; a[i]:=1/16; - абсолютно лишнее и ошибочное.
Весь код вычислений:
s := 0;
readln(n);
for i := 1 to n do begin
read(k);
if (k >= 16) and (k <= 255) and (k mod 16 < 10) then inc(s, k)
end;
writeln(s)
Александр Пузач
Спасибо вам большое))!!!
Что пишет ошибка то? По ошибке и можно сказать в чём проблема.
Даймер Даймер
Файл похоже не закрывает, отсутствует "close (input);" Выдает ошибку
Александр Пузач
Нет свойства по умолчанию для типа 'byte',тоже самое и с real и integer
Похожие вопросы
- Помогите пожалуйста я вас о4ень прошу !нужно составить программу в паскале....
- Помогите составить программу на паскале!
- найти все семизначные числа, которые делятся на 15 и записываются только цифрами 0 и 1. Составить программу на паскале
- помогите пожалуйста составить программу в паскале
- Составить программу в паскаль
- Нужно написать программы в Паскале! Массивы! Срочно! Помогите!
- Нужно написать программу на паскале
- Помогите пожалуйста составить программу на Паскале, используя оператор case
- помогите пожалуйста, нужно составить программу на языке Паскаль
- помогите составить программу в паскаль, плиз