Другие языки программирования и технологии

Не могу правильно написать else if на Паскале

На C++ else if выводит что то одно, у меня же оно выводит всё:

if v = power(10,12) then
write ('Result: '); write (v/100000); write (' tHz'); writeln;
if v = power(10,9) then
write ('Result: '); write (v/10000); write (' gHz'); writeln;
if v = power(10,6) then
write ('Result: '); write (v/1000); write (' mHz'); writeln;
if v = power(10,3) then
write ('Result: '); write (v/100); write (' kHz'); writeln;
if v = power(10,2) then
write ('Result: '); write (v/10); write (' hHz'); writeln;
if v = power(10,1) then
write ('Result: '); write (v/1); write (' daHz'); writeln;
if v = (1) then
write ('Result: '); write (v); write (' Hz');
if v = power(10,12) then
begin write ('Result: '); write (v/100000); write (' tHz'); writeln end;
Дальше аналогично.
А еще лучше вместо этого
if v = power(10,12) then writeln ('Result: ',v/100000,' tHz');
ММ
Максим Михайлович
59 955
Лучший ответ
Михаил Есин не работает
да можно и без елсе. Но где гарантия, что в именно равно 10**3н?
Aleksandr Hodin
Aleksandr Hodin
66 073
Если формулы верные, тогда так

const c = 300000;
r = 1.616229*(power(10,-35));
var y, v: real;
v1: longInt;
i: byte;
begin
writeln ('Расчёт частоты электромагнитных волн');
writeln ('Условные обозначения: ',#10, 'c - скорость света ', c,' м/с');
writeln ('v - частота волны ',#10,'y - длина волны ');
writeln ('Формулы расчёта: ',#10, 'v = c/y');
write ('Длина волны = ');
readln (y);
v:= c/y;
writeln ('v = ', v);
v1:=round(v);
while v1 > 10 do
begin
inc (i);
v1:= v1 div 10;
end;
write ('Result = ');
case i of
0: writeln (v, ' Hz');
1: writeln (v/10,' daHz');
2: writeln (v/100,' hHz');
3: writeln (v/1000,' kHz');
4..6: writeln (v/1000000,' mHz');
7..9: writeln (v/1000000000,' gHz');
10..12: writeln (v/1000000000000,' tHz');
{можно еще дописать диапазоны, также отрицательные -3..-1, -6..-4, тогда немного поправить код необходимо}
else writeln ('Error: невозможное значение');
end;
end.
Канат Алибеков
Канат Алибеков
20 124
там надо через else вроде обязательно, то есть как в экселе условия, если вариантов больше двух, то два пишутся в условии внутри "иначе", а потом еще раз и т. д.