Ошибка, рядовой !![]()
Капитан
![Razz :P](./images/smilies/icon_razz.gif)
Модератор: Модераторы
Ошибка, рядовой !![]()
nikolay61 писал(а): как написать прогарму ДО задачи
rudie писал(а):Помогите пожалуйста составить программу, чтобы числа выводились в виде такой таблицы, если не трудно с объяснениями что к чему:
0
1 0
2 1 0
3 2 1 0
4 3 2 1 0
var
i, j: integer;
begin
for i := 0 to 4 do begin
for j := i downto 0 do write(j, ' ');
writeln;
end;
end.
vada писал(а):Капитан
uses crt;
var x,y:integer;
s,r,d:longint;
h:real;
z:char;
BEGIN
writeln('x,y');
read(x,y);
writeln('z');
read(z);
case z of
'+': begin s:=x+y; writeln(s); end;
'-': begin r:=x-y; writeln(r); end;
'*': begin d:=x*y; writeln(d); end;
'/': begin h:=x/y; writeln(h:2:3); end;
else writeln('Помилка');
end;
readln;
readln;
END.
uses crt;
var x,y:integer;
s,r,d:longint;
h:real;
z:char;
BEGIN
writeln('x,y');
readLN(x,y); // Лучше с LN - более наглядно
writeln('z');
read(z);
case z of
'+': begin s:=x+y; writeln(s);//end;
'-': begin r:=x-y; writeln(r); //end;
'*': begin d:=x*y; writeln(d); //end;
'/': begin h:=x/y; writeln(h:2:3); //end;
else writeln('Помилка');
end; // на весь case надо только один end
readln;
// readln; - зачем второй readln в конце?
END.
var
x, y: real;
z: char;
begin
write('Введите через пробелы два числа и знак операции: '); readln(x, y, z);
case z of
'+': writeln(x+y);
'-': writeln(x-y);
'*': writeln(x*y);
'/': writeln(x/y);
else writeln('Ошибочная операция.');
end;
readln;
end.
те "end"-ы не от "case"-а, а от составных операторов "begin end" в каждом из вариантов.PapaNT писал(а):на весь case надо только один end
Vadim писал(а):Никак! "прогарму" пишут только ПОСЛЕ задачи...
bormant писал(а):те "end"-ы не от "case"-а, а от составных операторов "begin end" в каждом из вариантов.
... в операторе if ... then ... else. Вот только не вижу тут я этого оператора... А вы?v-t-l писал(а):перед else ";" не ставится.
PapaNT писал(а):PapaNT
PapaNT писал(а):на весь case надо только один end
PapaNT писал(а):
- Код: Выделить всё
uses crt;
var x,y:integer;
s,r,d:longint;
h:real;
z:char;
BEGIN
writeln('x,y');
readLN(x,y); // Лучше с LN - более наглядно
writeln('z');
read(z);
case z of
'+': begin s:=x+y; writeln(s);//end;
'-': begin r:=x-y; writeln(r); //end;
'*': begin d:=x*y; writeln(d); //end;
'/': begin h:=x/y; writeln(h:2:3); //end;
else writeln('Помилка');
end; // на весь case надо только один end
readln;
// readln; - зачем второй readln в конце?
END.
А ведь работает и так. Почему первый раз не заработало не пойму. Может что-то с FPC. Я переустановил, попробовал и заработал и в этой версии сборки.
program OPERACII;
uses crt;
var x,y:integer;
s,d,r:longint;
h:real;
z:char;
i:byte;
label koka;
BEGIN
clrscr;
koka:
writeln('Введите х и у'); readln(x,y);
writeln('введите символ (-,+,*,/)'); readln(z);
case z of
'+': begin s:=x+y; writeln(s); end;
'-': begin r:=x-y; writeln(r); end;
'*': begin d:=x*y ;writeln(d); end;
'/': begin h:=x/y; writeln(h:3:3); end;
else writeln('Не тот знак ввели');
end;
writeln('Если дальше продолжить, жми 1, в противном случає - любую цифру'); readln(i);
if i=1 then GOTO koka else writeln('К О Н Е Ц');
readln;
END.
nikolay61 писал(а):КОД: ВЫДЕЛИТЬ ВСЁ
uses crt;
var x,y:integer;
s,r,d:longint;
h:real;
z:char;
BEGIN
writeln('x,y');
readLN(x,y); // Лучше с LN - более наглядно
writeln('z');
read(z);
case z of
'+': begin s:=x+y; writeln(s);//end;
'-': begin r:=x-y; writeln(r); //end;
'*': begin d:=x*y; writeln(d); //end;
'/': begin h:=x/y; writeln(h:2:3); //end;
else writeln('Помилка');
end; // на весь case надо только один end
readln;
// readln; - зачем второй readln в конце?
END.
s:=0; k:=0;
{ считаем сумму и количество чётных чисел среди c1, c2, c3 }
if c1 mod 2=0 then begin s:=s+c1; k:=k+1; end;
if c2 mod 2=0 then begin s:=s+c2; k:=k+1; end;
if c3 mod 2=0 then begin s:=s+c3; k:=k+1; end;
if k=0 then
writeln('Среди введённых чисел нет чётных.')
else
writeln('Сумма=', s, ', Количество=', k, ', Среднее=', s/k:4:4);
var
c: array [0..2] of integer;
i, s, k: integer;
begin
repeat
write('Введите три числа (через пробел): ');
readln(c[0], c[1], c[2]);
s := 0; k := 0;
for i := 0 to 2 do
if c[i] mod 2 = 0 then begin
s := s + c[i]; k := k + 1;
end;
if k = 0 then
writeln('Среди введённых чисел нет чётных.')
else
writeln('Для чётных: Сумма=', s, ', Количество=', k, ', Среднее=', s/k:4:4);
write('Введите 1 для продолжения или 0 для завершения: ');
readln(i);
until i = 0;
writeln('Завершено, нажмите Enter.');
readln;
end.
Вернуться в Обучение Free Pascal
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3