Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/236: Рейтинг темы: голосов - 236, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 4
1

Program1.pas(12) : Нельзя преобразовать тип real к integer

20.09.2013, 18:04. Показов 45879. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Program Logika; 
var x,y,z: real; 
 L,A,B,C:boolean; 
begin 
 cls; 
 // Вводим исходные данные: 
 writeLn('Введите x,y,z'); 
 readLn(x,y,z); 
 // вычисляем промежуточные предикаты: 
 A:= (sin(x)>cos(x)); 
 B:= (abs(y)>= 2*(sqrt(x))); 
 C:= (12 div z <= 6);
 // выводим полученные значения
writeLn('A=',A,' B=',B,' C=',C);
 // вычисляем и выводим результирующий предикат: 
 L:= ((C xor B) and (A or B)) xor B;
 writeLn('L=',L); 
end.
В чем проблема?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.09.2013, 18:04
Ответы с готовыми решениями:

Program1.pas(7) : Нельзя преобразовать тип KeyValuePair<real,integer> к real
program pomogite; var x, y: real; begin readln(x); if x=&gt;-2 and 3&gt;=x then y:=sqrt(x*x+4) ...

Запутался с программой,выдает ошибку Program1.pas(21,4): Нельзя преобразовать тип IEnumerable<integer> к integ
Доброго времени суток,суть моей проблемы такова.При запуске программы выдает ошибку...

Нельзя преобразовать тип function(a: integer;b: integer):integer к real
unit matr1; interface type matr2=array of real; matr3=array of real; procedure sum...

Нельзя преобразовать тип real к integer
Всем привет) В процессе написание программы у меня возникла следующая проблема: Строка 24: нельзя...

9
908 / 756 / 833
Регистрация: 06.09.2013
Сообщений: 1,561
20.09.2013, 18:22 2
проблема в том, что функцию div (A div B - целая часть при делении A на B) можно использовать только для целых чисел, а у тебя z вещественная переменная. В этом случае используй int(x) - целую часть числа x для вещественных чисел. А если хочешь через div (как у тебя было), то вместо real поставь integer. Вот я переписал код:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Program Logika;
var 
  x,y,z: real;
  L,A,B,C: boolean;
  
begin
  cls;
 // Вводим исходные данные:
  writeLn('Введите x,y,z');
  readLn(x,y,z);
 // вычисляем промежуточные предикаты:
  A:= (sin(x)>cos(x));
  B:= (abs(y)>= 2*(sqrt(x)));
  C := (int(12 / z) <= 6); //целая часть не превышает 6 
 // выводим полученные значения
  writeLn('A=',A,' B=',B,' C=',C);
 // вычисляем и выводим результирующий предикат:
  L:= ((C xor B) and (A or B)) xor B;
  writeLn('L=',L);
end.
0
0 / 0 / 0
Регистрация: 19.05.2017
Сообщений: 1
19.05.2017, 14:51 3
Pascal
1
2
3
4
5
6
7
8
9
var x,y,z:integer;
Begin
   writeln('введите число:x ');
   readln(x);
   writeln('введите число:y ');
   readln(y);
   
   z:=1+sin (sqrt(abs(y))+1)/cos(sqr(12x) -4)+y 
End.
что не так
пишет что: Program1.pas(8) : Нельзя преобразовать тип real к integer
0
Ivandur
19.05.2017, 15:43
  #4

Не по теме:


Некроманта на костёр!!!

0
Эксперт Pascal/Delphi
6811 / 4568 / 4819
Регистрация: 05.06.2014
Сообщений: 22,438
19.05.2017, 16:49 5
riderlot, у вас и деление есть вещественное и тригонометрические функции. Замените integer на real .
0
0 / 0 / 0
Регистрация: 26.12.2017
Сообщений: 4
07.02.2018, 16:52 6
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
program p1;
type punct=record
       x,y: integer;
       end;
     tablou=array[1..20] of punct;
 var a: tablou;
 function CALCUL (a:tablou; i,s,n:integer):tablou;
 var x,y: tablou;
 begin
 write('dati cantitatea de numere:');
 readln(n);
 s:=0;
 for i:=1 to n do
 if (x[i]>=0) and (y[i]>=0) then s:=s+1;
 end;
 begin
 write(calcul);
 end.
Program1.pas(14) : Нельзя преобразовать тип punct к integer
в чем проблема?
0
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
07.02.2018, 16:57 7
Сдаётся мне, что должно быть что-то вот такое
Pascal
14
 if (x[i].x>=0) and (x[i].y>=0) then s:=s+1;
1
0 / 0 / 0
Регистрация: 26.12.2017
Сообщений: 4
08.02.2018, 20:41 8
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Program bilet;
type bilete = record
     nrbil,pret,starea:integer;
     end;
     var f: file of bilete;
     b: bilete;
     i,n: byte;
     s:real;
     begin
     begin
     write('numarul de bilete:');
     readln(n);
     assign (f,'BILET.TXT');
     rewrite(f);
     for i:= 1 to n do begin
     writeln('biletul', i);
     with b do begin
     write('NRbil:'); readln(nrbil);
     write('pret:'); readln(pret);
     write('starea:'); readln(starea);
     end;
     write(f,b);
     end;
     close(f);
     end;
     assign(f, 'BILET.TXT');
     reset(f);
     while not eof(f) do begin
     read(f,b);
     with b do
     if (starea=1)then s:=nrbil*pret;
     writeln('suma:',s);
     end;
     close(f);
     end.
мне выдаёт произведение для каждого ряда файла отдельно, а мне надо чтобы на экран выдавалась только одна сума
к примеру я поставил
1
NRbil: 1; pret: 120; starea: 1;
2
NRbil: 20; pret: 100; starea: 1;

и мне выдаёт
120
2000

а надо 2120
0
694 / 5688 / 265
Регистрация: 11.08.2016
Сообщений: 3,523
08.02.2018, 23:03 9
Перед циклом чтения из файла присвоить s значение 0.
В строчечке if (starea=1)then s:=nrbil*pret; написать s:=s+nrbil*pret;
Поставить строчечку writeln('suma:',s); после end;, а не перед.

Всегда ваш, Капитан Очевидность.
0
0 / 0 / 0
Регистрация: 21.09.2018
Сообщений: 2
22.09.2018, 13:24 10
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Const l='--';
Var i,n:integer;
    y,x,x1,a:real;
    dx:string;
Begin
    Repeat
     write('N: ');readln(n);
    Until n<=0;
    write('x1');
    readln(x1);
    write('dx');
    readln(dx);
    write(a);
    readln(a);
    x:=x1;
    writeln(l);
    writeln(' N  |   X    |   Y    |');
    writeln(l);
    For i:=1 to n do
    Begin
      if x>=0 then 
      Begin
        y:=sqrt(exp(3*ln(exp(1/3*ln(4*sqr(A)))) - (exp(1/3*ln(sqr(x+2*A))))));
        writeln('|',i:3,'|',x:7:2,'|',y:7:2,'|');
      End
      else if -sqrt(exp(3*ln(exp(1/3*ln(4*sqr(A)))) - (exp(1/3*ln(sqr(x+2*A)))))) >0 then
      Begin
        y:=-sqrt(exp(3*ln(exp(1/3*ln(4*sqr(A)))) - (exp(1/3*ln(sqr(x+2*A))))));
        writeln('|',i:3,'|',x:7:2,'|',y:7:2,'|');
      End
      else
      Begin
        y:=-sqrt(exp(3*ln(exp(1/3*ln(4*sqr(A)))) - (exp(1/3*ln(sqr(x+2*A))))));
        writeln('|',i:3,'|',x:7:2,'|  null ','|');
      End;
      x:=x+dx;
    End;
    writeln(l);
End.
0
22.09.2018, 13:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.09.2018, 13:24
Помогаю со студенческими работами здесь

Нельзя преобразовать тип real к integer
Выдаёт ошибку при завершении &quot;Program1.pas(15,20): Нельзя преобразовать тип real к integer&quot; в чём...

Нельзя преобразовать тип real к integer
uses graphabc; begin var x,y:real; var angl:integer; x:=0; y:=0; for angl:=0 to...

Нельзя преобразовать тип real к integer
Пишет ошибку : Нельзя преобразовать тип real к integer procedure Repeat1; Const Alpha = 0.1;...

Нельзя преобразовать тип real к integer
program l7; var F1,F2:text; R,K:real; i:byte; begin assign(F1,'E:\file1.txt');...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru