Урок №7. Паскаль с нуля. Многоуровневое разветвление

preview_player
Показать описание
В данном уроке мы решим две интересные задачи.
1. Нахождение оптимального веса пользователя
2. Определим по входным данным кто быстрее заяц или жираф.
С данным видеокурсом обучение программированию станет не только полезным но и интересным.
Рекомендации по теме
Комментарии
Автор

Спасибо Вам огромное!Когда в школе объясняли, то я ничего не понял, всё постоянно путал!А посмотрел эти видео-и всё понятно стало!По самостоятельной 5 получил!

ВацлавСтанишевский-иг
Автор

var R1, R2, Robw1, Robw2, v: real;
begin
write ('Введите 1 сопротивление: ');
readln (r1);
write ('Введите 2 сопротивление: ');
readln (r2);
write ('Вид соединения. 1-последовательное. 2-параллельное. - ');
readln (v);
Robw1:=r1+r2;
Robw2:=1/((1/r1) +(1/r2));
if (v=1) then write ('Общее сопротивление = ', Robw1)
else if (v=2) then write ('Общее сопротивление = ', Robw2)
else if (v<>1) and (v<>2) then write ('Ошибка ввода!');
end.

alimanmeimanbaeva
Автор

Рабочий код на дз (слово vibor можно сократить v( слово vibor делал для себя))


program soprativlenie;
var R, R1, R2, vibor:real;
begin
write('Введите величину первого сопротивления Ом: ');
read(R1);
write('Введите величину второго сопротивления Ом: ');
read(R2);
write('Выберите тип соединения: 1 - последовательное, 2 - параллельное: ');
read(vibor);
if (vibor>2) or (vibor<1) then write('Ошибка ввода!')
else if (vibor=1) or (vibor=2) then
if (vibor=1) then
begin
R:=R1+R2;
write('Общее сопративление ', R:6:1, ' Ом');
end
else if (vibor=2) then
begin
R:=(R1*R2)/(R1+R2);
write('Общее сопративление ', R:6:1, ' Ом')
end


end.

Dimker
Автор

Ооо, а я домашку ссма сделала, но с одним begin . Просто по больше if 😅

Evs-ht
Автор

Program Rom;

var
R0, R, R1, R2, n: real;
begin
write('Введите величину первого сопротивления Om - ');
read(R1);
write('Введите величину второго сопротивления Om - ');
read(R2);
write('Введите тип соединения: 1- последовательное, 2- параллельное - ');
read(n);
R:= R1+R2;// общее сопротивление если n=1
R0:=(R1*R2)/(R1+R2); // общее сопротивление если n=2
if n=1 then
write(' Общее сопротивление цепи = ', R, ' Ом');
if n=2 then
write(' Общее сопротивление цепи = ', R0:0:1, ' Ом')
else
write('Ошибка ввода ');

end.

ВиталийРожков-ле
Автор

я сделала не много по легче просто все формулы оставила на вверху)program f2;
var w, h, opt, d, m:real;
begin
write ('введите рост в см');
read (h);
write ('введите вес в кг');
read (w);
opt:=h-100;
d:=w-opt;
m:=opt-w;
if (opt=w) then writeln ('Вес оптимальный')
else begin
if (w>opt) then writeln ('Вам надо похудеть на', d)
else begin
if (w<opt) then writeln ('Вам надо похудеть на', m)
else
end;
end;
end.

nasteonakamski
Автор

А вот такое решение имеет место быть?

program jirafzayac;
var S1, S2, T1, T2:integer;
V1, V2:real;

begin

writeln ('Введите показатели жирафа');
read (S1, T1);
writeln ('Введите показатели заяца');
read (S2, T2);

V1:=S1/T1;
writeln (' Скорость жирафа = ', V1);
V2:=S2/T2;
writeln (' Скорость заяца = ', V2);

if V1=V2 then writeln(' Боевая ничья! ')
else
begin

if V1>V2 then writeln(' Жираф победил! ')
else writeln(' Заяц победил! ');
end;

end.

spke
Автор

У меня получилось на одну строку и на одну переменную меньше, но если вводить не целые числа, то много знаков после запятой. Как их ограничить?
program iffff;
var w, r, d:Real;
begin
Writeln('ВЕС');
Read (w);
WriteLn('РОСТ');
Read(r);
d:=r-w-100;
if d=0 then Write('ништяк')
else
begin
if d<0 then
begin
d:=d*(-1);
Write('жирдяй ', d, ' кг');
end
else
Write('набрать ', d, ' кг');
end;
end.

SenvaL
Автор

program soprotivlenie;

var
r, r1, r2: real;
x: integer;

begin
writeln('Введите исходное сопротивление');
read(r1);
read(r2);
writeln('Введите тип соединения транзисторов 1-последовательное, 2-паралелльное ');
read(x);
if (x < 1) and (x > 2) then

write('Ошибка ввода');

if (x = 1) then
begin
r := r1 + r2;
write('Сопротивление= ', r);
end
else
begin
if (x = 2) then r := ((r1 * r2) / (r1 + r2));
write('Сопротивление = ', r);

end;

end.
Подскажите, пожалуйста, в чем ошибка? не выдает' Ошибка ввода'. При введении чисел отличных от 1 и 2, пишет сопротивление равно 0

ОльгаЯковлева-тж
Автор

Скажите, пожалуйста, почему мы в задаче про вес в одном случае не поставили точку с запятой после внутреннего end, а в другом поставили?

КристинаЛебедева-пэ
Автор

program resistors;
var R1, R2, S:real;
n:integer;
begin
writeln('vvedite soprotivlenie pervogo resistora');
read(R1);
writeln('vvedite soprotivlenie vtorogo resistora');
read(R2);
writeln('viberite tip soedinenija:
read(n);

if (n=1) or (n=2) then

if n=1 then
begin
S:=r1+r2;
writeln('sorotivlenie =', s);
end

else
begin
S:=1/((1/r1) + (1/r2));

writeln('sorotivlenie =', s);

end
else writeln('error');
end.

paveltumanow
Автор

program roct;

var
d, w, h, opt: integer;
begin
writeln('Введите свой рост');
read(h);
writeln('Введите свой вес');
read(w);
opt:=h-100;
if opt=w then writeln('Вес оптимален')
else
begin
if w>opt then
begin
d:=w-opt;
writeln('Вам надо похудеть на ', d);
end
else
begin
d:=opt-w;
writeln('Вам надо потолстеть на ', d);
end;
end;
end.

onaf
Автор

Класс всё толково объясняешь, жалко нету циклов.

wany
Автор

Обьесни пж когда ставится writeln и readln.

КириллШевченко-зг
Автор

задача 7.8 Чого в мене при последовательном соидинении выбивает "Помилка вводу!!!" а не считает?где ошибка?
Program Opir;
var R1, R2, R:real;n:integer;
begin
Writeln('Введіть опір на 1-ій ділянці :');
Read(R1);
Writeln('Введіть опір на 2-ій ділянці :');
Read(R2);
Writeln('Введіть номер з''єднання(1-послідовне, 2-паралельне):');
Read(n);
if (n=2 or 1) then
begin
if(n=1)
then
R:=R1+R2;
Write('Опір з''єднання :', R:6:2, ' Ом');
end
else if(n=2) then
begin
R:=(R1*R2)/(R1+R2);
Write('Опір з''єднання :', R:6:2, ' Ом');
end
else
begin
write('Помилка вводу!!!')
end;
End.

ОксанаЗаграй-кы
Автор

ПОМОГИТЕ ПОЖАЛУУЙСТААААА!!!! Я попробовала написать программу для решения уравнений типа ах^2+bx+с, но у меня видимо что то неверно и я )) Объясните пожалуйста
program l20;
var a, b, c, d, x1, x2: real;
begin
writeln(' Введите число а ');
read(a);
writeln(' Введите число b ');
read(b);
writeln(' Введите число с ');
read (c);
d:= ((sqr(b))-(4*a*c));
if d=0 then
begin
x1:= -b-(sqrt(d))/(2*a);
writeln(' Если дискриминант равен нулю то х1=', x1 );
end;
else if b>0 then
begin
x1:=-b-(sqrt(d))/(2*a);
x2:=-b+(sqrt(d))/(2*a);
writeln(' Если дискриминант больше ноля то х1=', x1 );
writeln(' А х2=', x2 );
end;
else writeln(' НЕТ РЕШЕНИЙ!!!! Т.к дискриминант меньше нуля ');
end.

looneyhannie
Автор

долго мучилась, но вроде получилось д/з
№7.8
program my15;
var R1, R2, R:real;
begin
writeln('введите величину первого сопротивления ом');
readln(R1);
writeln('введите величину второго сопротивления ом');
readln(R2);
writeln('выберите тип сопротивления: 1-последовательное, 2-параллельное');
readln(R);
if R=2
then writeln ('Общее сопротивление =', ' ', (R1*R2)/(R1+R2):0:1, ' ', 'ом');
if R=1
then writeln ('Общее сопротивление =', ' ', (R1+R2):0:1, ' ', 'ом');
if (R<1)or (R>2)
then writeln ('ошибка ввода');
end.

helenmaksimova
Автор

PROGRAM EX15;
VAR S1, S2, T1, T2, V1, V2:REAL;
BEGIN
WRITE ('ПОКАЗАТЕЛИ ЖИРАФА:');
READ(S1, T1);
WRITE ('ПОКАЗАТЕЛИ ЗАЙЦА:');
READ(S2, T2);
V1:=S1/T1;
V2:=S2/T2;
IF (V1=V2)THEN WRITE ('ПОБЕДИЛА ДРУЖБА!!') ELSE IF (V1>V2) THEN WRITE ('ПОБЕДИЛ ЖИРАФ!!!')
ELSE WRITE ('ЗАЯЦ ЧЕМПИОН!!!');
END.

prisonerofdota
Автор

var r1, r2, r, v:real;
begin

writeln('introduceti r1');

readln(r1);

writeln('introduceti r2');

readln(r2);

writeln('pentru a alege serie sau paralel');

readln(v);

if (v=1) then

begin

r := r1+r2;

writeln('raspunsul este', r);

end

else

if (v=2) then

begin

r := (r1*r2)/(r1+r2);

writeln('raspunsul este', r);

readln();

end;

end.

petruursu
Автор

можно проще
PROGRAM work;
var h, v, vopt, k, l:real;
begin
write('Введите рост: ');
read(h);
write('Введите вес: ');
read(v);
vopt:=h-100;
k:=vopt-v;
l:=v-vopt;
if (vopt>v) then write('Поправьтесь на: ', k)
else write('Похудейте на: ', l);

end.

ДенисРоманов-йщ