Wątek przeniesiony 2015-01-06 23:26 z Delphi i Pascal przez olesio.

Błąd niezgodności typów.

0

Witam. Chce zrobić program liczący wg wzoru ilość nitów przy sile ścinającej. Wyskakuje mi błąd z niezgodnością typów oraz z econverterror with messagge...

0

Jakiego wyniku oczekujesz kiedy mnożysz liczbę przez napis?

0

ENDZI922: nadawaj sensowne tagi dla swoich wątków. A także tematy opisujące problem. To że tam wpiszesz "POMOCY" nie sprawi, że nagle wszyscy rzucą się Tobie na ratunek. Nie musisz również na nas krzyczeć. Poprawiłem to, bo taki wrzask samym Caps Lockiem źle się czyta.

Wklejaj też kod w odpowiednich znacznikach i formatuj kod. Jeżeli nie umiesz tego sam to używaj http://olesio.eu/jcf - bo łatwiej odpowiadającym przekleić kod i sprawdzić niż dopatrywać się na screenie. A Dragon już Tobie napisał co jest źle. I wątek przenoszę do działu Newbie. Tam zadawaj pytania o podstawy.

0

Problemem jest deklaracja poniższych zmiennych:

const
  p='3.14';
  f='4000'

Są to łańcuchy znaków, a używasz ich tak, jakby zawierały wartości liczbowe; Po pierwsze zadeklaruj je jak normalne liczby zmiennoprzecinkowe:

const
  p = 3.14;
  f = 4000;

a po drugie sio do jakiegoś kursu Delphi, bo to są podstawy podstaw; A bez znajomości podstaw programowania, niczego więcej niż "hello world" nie napiszesz niestety;

PS: A jeśli jeszcze raz wstawisz obrazek z kodem, zamiast przekleić normalnie kod, to wątek wyląduje z hukiem w koszu; Marnujesz czas na obrazki, zamiast kilka razy kliknąć i pokazać kod jak należy.

0
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,MATH;

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
m,d,k,n,p,f:real;

begin

 try
    m:=StrToFloat(Edit1.Text)

 except

    ShowMessage ('Dane muszą by liczbami');
 exit;
 end;

  try
     k:=StrToFloat(Edit1.Text)

 except

    ShowMessage ('Dane muszą by liczbami');
 exit;
 end;

       try
     d:=StrToFloat(Edit1.Text)

 except

    ShowMessage ('Dane muszą by liczbami');
 exit;
 end;

 m:=strtofloat(edit1.text);
 d:=strtofloat(edit2.Text);
 k:=strtofloat(edit3.Text);

  p:=3.14;
  f:=4000;

 n:=round((4*f)/(m*k*p*sqrt(d)));
 Label6.Caption:='Ilosc nitow N=' + Formatfloat ('0.00',n);
end;
end.

Witam ponownie, przepraszam za zamieszanie, rzeczywiście nie mam pojęcia o programowaniu.. ale jednak muszę to zrobić. Pierwszy raz jestem na tym forum , nie wiedziałam, że są takie zasady , w każdym razie przepraszam wszystkich :)

teraz mam problem taki, że wyskakuje mi błąd , że "value asigned to d never used" i tak do zmiennej m i k równiez a poza tym nie dziala mi obsluga wyjątków tylko wyskakuje bład EconvertError , liczę na waszą pomoc .

0

zmienilam wszędzie na pi , teraz wgl nie chce liczyć nie odczytuje że pi =3.14

1

Wywal z deklaracji bo to jest stała globalna.

0

okej wywaliłam , liczy ale jest dalej ten bład że m , k i d nie są wgl uzyte nigdy i nie wyskakuje komunikat że kiedy wpisze ciąg znaków (tekst) zamiast liczb m= jhfhfhf i powinien wyskoczyc komunikat ze m musi być liczbą , tak się nie dzieje

0

Bo masz to wewnątrz try, te konwersje po try też wywal.

0

błąd o tym że m never used zniknąl lecz nadal nie chce pokazywać komunikatów podczas obłusgi wyjątków , wyskakuje tylko komunikat z programu a nie mój, oraz ten że błąd : "project1 raised exception class EconvertErrror with message "ww"(to wpisałam w pole gdzie jest m) is not a valid floating point value"

0

Odpal program bezpośrednio z dysku czyli exe.

0

komunikat po ang . "ww" is not a vaild floating point
value

0

Przy tym http://4programmers.net/Forum/1099168 kodzie i program odpalony bez Delphi?

0

biorę ten plik project1. exe otwiera sie okienko z programem i wyskakuje wlasnie to co wyzej po angielsku

0

nikt poza _13th_Dragon nie jest w stanie poradzić nic?

0

Skoro twierdzisz że odpalasz ten http://4programmers.net/Forum/1099168 program poza Delphi i twierdzisz iż nadal widzisz komunikaty wyjątków oznacza to tylko jedno: - "Chrzani waść".
Więc nic dziwnego że nikt nie może ci pomóc.

0

@Endzi922 - pokaż aktualny kod, bo teraz nie wiadomo jaki testujesz; Tylko nie zapomnij wstawić go w poście w znaczniki kolorujące składnię.

1 użytkowników online, w tym zalogowanych: 0, gości: 1