Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Образовательный студенческий форум _ Информатика / Программирование _ не получается задача в праскале, подскажите в чем ошибка

Автор: MARIZZA_B 5.5.2011, 16:38

в приклепленном файле задания

а вот что получилjсь:
program function;
users crt;
var x,a,y,k1,k2:real;
begin
clrscr;
x:=0.844;
a:=0.83756;
y:=a*(1-exp(-0.2));
if (0<x) and (x<2) then
k1:=y*arctan(1-sqr(x));
writeln ('k1=');
else
if x>=2 and x<=(-y) then
k2:=ln(abs(1-x/y);
writeln ('k2=');
else
writeln ('нет решения');
readln;
end.
Подскажите в чем ошибка?

заданиеПрикрепленный файл  _______.doc ( 20 килобайт ) Кол-во скачиваний: 131
Прикрепленный файл  _______.doc ( 20 килобайт ) Кол-во скачиваний: 131

Автор: Vahappaday 6.5.2011, 8:50

1. У меня FPC не дал скомпилить из-за того, что Вы программу назвали "fubction", a "function" - зарезервированное слово паскаля.
2. users -> uses
3. AND -> OR
4. Переменные нигде не выводились (сами глянете как надо в writeln)
Да и вообще у вас повсюду надо объединять блоками begin/end конструкции в операторах if

Код
program func;
uses crt;
var x,a,y,k1,k2:real;
begin
  clrscr;
  x:=0.844;
  a:=0.83756;
  y:=a*(1-exp(-0.2));
  if (0<x) and (x<2) then
    begin
        k1:=y*arctan(1-sqr(x));
        writeln ('k1=', k1);
    end
  else
    begin
      if (x>=2) OR (x<=(-y)) then
        begin
          k2:=ln(abs(1-x/y));
          writeln ('k2=',k2);
        end
      else
        begin
          writeln ('no solution');
        end
    end;
  readln();
end.


Код вообще-то принято отлаживать.

Автор: MARIZZA_B 7.5.2011, 13:55

Спасибо за помощь) очень помогли)

Автор: MARIZZA_B 7.5.2011, 17:37

Подскажите, не получается:1.составить программу для вывода на экран символов + расположив их в столбец.
Вот что получилось у меня:
program pr1;
var s:string;
i:integer;
begin
i:=43;
writeln ('vvedite simvols');
readln;
while (i<43) and (i>43) do
begin
writeln (chr(i));
readln;
begin
for i:=43 to length(s) do
writeln (s[i]);
end;
end;
end.


Программа ошибок не находит, но и результат не выдает, вроде сделала, как объясняли, а что не так не пойму.

Автор: Sixthirty 8.5.2011, 14:39

Код
program pr1;
var
  s:string;
  i:integer;
begin
  s:='';
  writeln('Enter symbols');
  readln(s);
  for i:=1 to length(s) do
  writeln(s[i]);  
end.


Подразумевается, что вводить символы вы будете без пробелов, а окончание ввода произведете нажатием на enter.

Автор: MARIZZA_B 8.5.2011, 14:43

Цитата(Sixthirty @ 8.5.2011, 20:39) *

Код
program pr1;
var
  s:string;
  i:integer;
begin
  s:='';
  writeln('Enter symbols');
  readln(s);
  for i:=1 to length(s) do
  writeln(s[i]);  
end.


Подразумевается, что вводить символы вы будете без пробелов, а окончание ввода произведете нажатием на enter.

Спасибо smile.gif

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)