0 / 0 / 0
Регистрация: 20.03.2019
Сообщений: 8
1

Нельзя преобразовать тип Tuple<string,string,string,string> к string

20.03.2019, 18:11. Показов 6215. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, у меня возникла проблема. При запуске кода, вылезает ошибка "Нельзя преобразовать тип Tuple<string,string,string,string> к string". Ошибку выдаёт в 5 строчке снизу.

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
uses FormsABC;
 
var 
  text1 := new TextLabel('ax² + bx + c = 0');
  text2 := new TextLabel('a, b, c — коэффициенты уравнения, могут быть любыми числами');
  a := new RealField ('a:');
  f1 := new FlowBreak;
  b := new RealField('b:');
  f2 := new FlowBreak;
  c := new RealField('c:');
  f3 := new FlowBreak;
  s1 := new Space(20);
  ok := new Button('Решить');
  f4 := new FlowBreak;
  solution := ('Введите коэффициенты уравнения');
  solution_tl := new TextLabel(solution);
 
 
begin
  MainForm.Title := 'Калькулятор квадратных уравнений';
  MainForm.SetSize(150,350);
  MainForm.CenterOnScreen;
  mainPanel.Dock := DockStyle.Left;
  mainPanel.Width := 150;
 
  ParentControl := MainForm;
 
var d, x, x1, x2 : real;
var x1_str, x2_str : string;
 
begin
 
if a.Value=0 then 
  if b.Value=0 then 
    if c.Value=0 then 
      solution := ('Х - любое число')
    else
      solution := ('Уравнение не имеет решений, поскольку b равен нулю')
  else
    begin
      x := -c.Value/b.Value;
      solution := ('X = ',x).ToString;
    end;
if a.Value<>0 then
  begin
   d := b.Value*b.Value-4*a.Value*c.Value;
    if d<0 then
      solution := ('Уравнение не имеет решений, поскольку D отрицательный')
   else
    begin
      x1 := (-b.Value+sqrt(d))/2/a.Value;
      x2 := (-b.Value-sqrt(d))/2/a.Value;
      str(x1,x1_str);
      str(x2,x2_str);
      solution := ('X1 = ', x1_str, 'x2 = ', x2_str);
    end;
  end;
end;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.03.2019, 18:11
Ответы с готовыми решениями:

Нельзя преобразовать тип char к string
//version 1.1 program calculator; var a, rez: real; oper, calc: string; flag_start: boolean; ...

Нельзя преобразовать тип string к integer
В выделенной 39-й строке выдает ошибку &quot;Нельзя преобразовать тип string к integer&quot;. Помогите...

Нельзя преобразовать тип integer к string
var game: record const v_main: integer = 1; const v_sub: integer = 0; const...

Нельзя преобразовать тип string к char
Result := Copy(rstr, 1, rstr.length - 1) + (endsym.length &lt;&gt; 0 ? endsym : |''); Нельзя...

6
256 / 148 / 70
Регистрация: 29.07.2018
Сообщений: 1,191
20.03.2019, 18:23 2
Лучший ответ Сообщение было отмечено kirillkossman как решение

Решение

kirillkossman,попробуйте строку 55 заменить на:
Pascal
1
solution := ('X1 = '+'x2 = '+x2_str);
1
0 / 0 / 0
Регистрация: 20.03.2019
Сообщений: 8
20.03.2019, 18:29  [ТС] 3
Точно, надо же было + ставить, а не запятые. А ещё я понял, что у меня не работает программа, т.к. я не добавил процедуру нажатия кнопки. Дело в том, что я её добавляю, но пишет, что встречена процедура, а ожидался оператор. Я не знаю в чем дело, но куда мне вставить процедуру и как правильно это сделать?
0
256 / 148 / 70
Регистрация: 29.07.2018
Сообщений: 1,191
20.03.2019, 18:40 4
Лучший ответ Сообщение было отмечено kirillkossman как решение

Решение

kirillkossman, я тоже это заметил,но к сожалению,помочь не могу,т.к. сам не знаю как это делать)
Почитайте эту тему,возможно там есть ответ: Обработчик событий нажатия кнопок мыши внутри цикла. Не работает
0
0 / 0 / 0
Регистрация: 20.03.2019
Сообщений: 8
20.03.2019, 18:43  [ТС] 5
Ну спасибо и за ту подсказку, я над этой ошибкой 4 часа сидел, весь код переписывал сто раз, а не мог починить. Видимо, это из-за того, что на Паскале программирую первые часов 6, так как я только сегодня узнал, что мне придется программу делать именно на нем. По-немногу что-то получается, но даже вот такие элементарные вещи незнаю.

Надеюсь, кто-то поможет верно вставить процедуру)
0
2231 / 1351 / 507
Регистрация: 07.04.2017
Сообщений: 4,633
20.03.2019, 18:45 6
Лучше так:
Pascal
1
      solution := Concat('X1 = ', x1_str, 'x2 = ', x2_str);
Когда строк больше 2 - Concat работает быстрее сложения.
0
256 / 148 / 70
Регистрация: 29.07.2018
Сообщений: 1,191
20.03.2019, 18:47 7
kirillkossman,Не за что,обращайтесь)
Эту справку тоже прочитайте: http://pascalabc.net/downloads... vents.html

Добавлено через 1 минуту
Sun Serega, спасибо,буду знать
0
20.03.2019, 18:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.03.2019, 18:47
Помогаю со студенческими работами здесь

Подскажите как сделать что бы работало пишет (Нельзя преобразовать тип string[20] к Subject)
Uses Crt; type Subject = record Name : String ; {название предмета } T : Integer;...

Преобразовать тип String в Integer
Подскажите плиз как преобразовать тип String в Integer?

Невозможно явно преобразовать тип real к типу string
Как обойти? uses graphABC; var gx,gy,x0,y0{м},x1,y1,y2{перепад на торцах}:integer;{переменным...

Какой функцией можно преобразовать тип byte в тип string и наоборот?
Вот моя проблема, у меня конченое действие будет выводить число в 10 С.С и в типе byte, а мне надо...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru