Tworzenie funkcji w C++ - projekt nie chce się skompilować

0

Witam, dziś właściwie zacząłem ale gdy chcę nauczyć się dodawać funkcję to mam problem, o ile juz na początku miałem problem jakoś nie wiem o co chodzi ale takie linijki:

#include <iostream>

#include <conio.h>

void main()
{
  std::cout << zxz << std::endl;
  getch();
}

były złe, to dobre były te:

#include <iostream.h>
# include <conio.h>

main(){
  cout<< zxz ;
  getch();
}

A więc przy dodawaniu funkcji też poszedłem tym tropem z tą drugą wersją i spróbowałem coś takiego:

#include <iostream.h>
# include <conio.h>

PokazTekst()
{ cout<< zxz ; 
main()
{
PokazTekst();
getch();
}

ale przy kompilowaniu też jakieś błędy mi wywala tak jak przy tych pierwszych linijkach bez tych funkcji i gdy chcę debugować to jest napisane "projekt nie jest skompilowany" i nie wiem o co chodzi.

Byłbym wdzięczny za pomoc, pozdrawiam :)

poprawienie tytułu wątku i jego tagów - furious programming

0

nie widze tu mojego problemu chyba, to co w wierszu dziala raczej, dzialam wedlug jeednego poradnika i chcialbym krok po kroku zeby mi dzialalo to co tam jest podane ;p jakby ktos inny mogl cos poradzic...

1

Nie zamykasz nawiasu klamrowego - to wszystko.

0

Hurr durr:

#include <iostream>

using namespace std;

void PokazTekst()
{
 cout << zxz; // cokolwiek ma to robić...
}

int main()
{
 PokazTekst();
}

1.#include <iostream>, a nie iostream.h, bo piszesz w C++, a nie C
2.using namespace std; - powód ten sam
3.Niezakończony blok funkcji PokazTekst (brak odpowiadającego })
4.Brak typów dla funkcji PokazTekst oraz main
5.getch - ki czego? Przecież środowisko i tak podtrzyma konsolę, a jeżeli nie - zmień je na coś z tej epoki.
6.Z powodu punktu piątego, conio.h jest zbędne.

Według jakiego to poradnika działasz?

0

@Patryk27
pokazuje ze ta linijka jest zla - > cout << zxz; // cokolwiek ma to robić...
to ma po prostu pokazac tekst ;p tylko zeby tam uzyc funkcji typu PokazTekst() wlasnie

0

No to:

cout << "jakis tekst" << endl;
0

wiem, wlasnie tez na to wpadlem juz ;p ale bez conio.h i getcha zamyka program zanim cos sie pojawi wgl, to musialem dodac. ale dzieki za pomoc w kazdym badz razie, moge przystapic do dalszej nauki :))

0

Przestań pisać w Dev-C++, to nie będziesz musiał dodawać tych coniowych potworków...

0

spoko, potem się rozejrzę za czymś innym ;)

0

a tak już à propos, jest w dev-c++ taki jakiś tryb śledzenia/krokowy, żeby można było oglądać czytelnie funkcja po funkcji w kolejności występowania ?

0

Afair nawet w tych starszych wersjach był debugger - sprawdź w menu uruchom/debugger/jakkolwiek się to może nazywać lub w dokumentacji.

0

Debugger jest, w opcjach kompilatora wybrałem "Generuj informacje dla odpluskiwacza" ale jakoś nie umiem się tym posłużyć żeby mi te linijki po kolei pokazywał..

0

Dlatego pora na aktualizację środowiska :P

0

ale ja sciągałem najnowszą wersję jaka była Od razu ze strony dev

0

Na dole zakładka Debug, lub <F5>

0

Nie no, wiem że debug ;p Ale czytam o takim sposobie żeby wyświetlało mi po kolei funkcje jak program działa, a nie wiem jak to zrobić

Aaa przepraszam ;p Chyba już czaję, tu muszę sprawdzać każdą linijke tak żeby np wybierał ustawienie kursora na dany wiersz i debug i wtedy pokazuje mi nowe okno z programem w stanie tej linijki i tak każdą po kolei którą chcę. Ale jednak jest coś źle bo samemu się nie chce przesuwać do dalszych linii

0

@4four - trochę późno jak na sugestie, ale skoro do tej pory dyskutanci nie opierniczyli Cię, to może ja skorzystam z sytuacji i to zrobię;

4four napisał(a)

ale przy kompilowaniu też jakieś błędy mi wywala tak jak przy tych pierwszych linijkach bez tych funkcji i gdy chcę debugować to jest napisane "projekt nie jest skompilowany" i nie wiem o co chodzi.

pokazuje ze ta linijka jest zla - > cout < zxz; // cokolwiek ma to robić...

Jeśli tak będziesz opisywał błędy kompilacji, to przy dłuższych kodach nikomu się nie będzie chciało ich analizować i użytkownicy będą się z Ciebie nabijać; To, że "nie działa" to jest oczywiste, skoro przychodzisz na forum; A "ta linijka jest zła" to mogą mówić poloniści - Twoim obowiązkiem jest podanie konkretnej linijki oraz kopii błędów kompilacji, jeśli chcesz uzyskać szybkiej pomocy;

Zapamiętaj to sobie na przyszłość, jeśli nie chcesz tracić czasu na tłumaczenie co jest nie tak z kodem; Wystarczy podać linijkę kodu i treść błędu kompilacji z nią związanego - to są najważniejsze informacje i te zawsze trzeba podawać.

0

Okej, dzięki będę pamiętał :) A wiesz co poradzić na ten najnowszy problem ? Nie ogarniam tego odpluskiwacza w ogóle -,- Do tego kompilatora microsoftu pełno opisów co i jak a do dev-c++ jest tylko jeden który przeczytałem, zastosowałem się, ale strzałka nie porusza się kolejno po wersach, czasem ruszy sie o pole a potem nic ...

0

Poczytaj więc w jaki sposób w ogóle posługiwać się debugerem; Zasada jest praktycznie taka sama dla większości kompilatorów - różnić się mogą jedynie skróty klawiszowe (w co i tak wątpię);

Typowe klawisze typowych funkcji debugera:

  • F5 - stawianie lub zdejmowanie breakpointów (stawia się je w linii zawierającej jakąś instrukcję),
  • F7 - zagłębienie się do środka instrukcji (np. wywołania własnej funkcji)
  • F8 - wykonanie instrukcji bez zagłębiania się do jej wnętrza (np. własna funkcja zostanie wykonana, ale debuger nie zagłębi się do niej;
  • F9 - uruchomienie programu (to raczej oczywiste);
    Do sprawdzania kolejności wykonywanych instrukcji w Twoim programie, powyższe funkcje wystarczą; Z pozostałymi możliwościami debugera zapoznaj się sam, bo od tego są dedykowane materiały, a nie forum.
0

Aaa dobra to już mniej więcej wiem o co chodzi :) Potem tylko doucze się przy praktyce i git, tylko mam tak, że jak chcę "przeskoczyć" funkcję bez zagłębiania się w niej to kursor przeskoczy parę linijek i zostaje na białym polu np i muszę myszką zaznaczać następną funkcję, ale to może za dużo enterów między funkcjami czy coś

0

Nie rozumiem jak Ci działa ten debuger... Nie powinien zatrzymywać się na liniach, które nie zawierają żadnej instrukcji (np. na linii komentarza czy całkowicie pustej linii);

Jeśli takie rzeczy wyprawia debuger i "skacze" po instrukcjach w dziwny sposób (nie za koleją ich wykonania), to czas najwyższy zaktualizować kompilator i przy okazji środowisko, albo skorzystać z innego.

0

ja też go nie rozumie (jak on tak może niedobry) :) kompilator najnowszy ze strony jest, system faktycznie zajechany, ale do konca tego tygodnia dociągne już na tym co mam, akcja wygląda tak, że wybieram opcje "przeskocz" u mnie żeby się nie zagłębiał w tą funkcję, to przeskoczy po jej odczytaniu do następnej, ale z następnej nawet jak wybiorę "przeskocz" to już się nigdzie nie rusza ;p może mam leniwy debugger

0

Pokaż kod który debugujesz i zaznacz w komentarzach miejsca w którym robisz to przeskocz.
Prawdopodobnie program nie wychodzi z pętli która jest wewnątrz tej funkcji którą próbujesz przeskoczyć.

0

W każdym kodzie tak samo się dzieje ale np w tym:

#include <iostream>
#include <conio.h>

**int main()**

*__**{**__*
   int nLiczba1
   std::cout << "Podaj pierwsza liczbe: ";
   std::cin >> nLiczba1;

   int nLiczba2;
   std::cout << "Podaj druga liczbe: ";
   std::cin >> nLiczba2;

   int nWynik = nLiczba1 + nLiczba2;
   std::cout << nLiczba1 << " + " << nLiczba2 << " = " << nWynik;
   getch();

}

 Najpierw klikam "przeskocz" potem "odpluskwiaj" kieruję strzałkę na interesujący mnie werset i następnie wybieram "uruchom do kursora" . Linijka pogrubiona to tak gdzie użyłem tej operacji, a nawias który podkreśliłem to miejsce gdzie kursor się przeniósł po tej operacji, gdy jestem już na tym polu powtarzam tą operację ale już nie przeskakuje nigdzie dalej.
1

Wszystko jasne

0

No i świetnie :) Dzięki ci

0

Mógłby mi ktoś powiedzieć gdzie tu błąd jest ? Bo myślę myślę i nie mam pomysłów ;p

#include<iostream>
#include<conio.h>

using namespace std;

int main()
{
   int nOpcja;
   std::cout << "Wybierz dzialanie:" << std::endl;
   std::cout << "1. Dodawanie" << std::endl;
   std::cout << "2. Odejmowanie" << std::endl;
   std::cout << "3. Mnozenie" << std::endl;
   std::cout << "4. Dzielenie" << std::endl;
   std::cout << "0. Wyjscie" << std::endl;
   std::cout << "Twoj wybor: ";
   std::cin >> nOpcja;
 
   switch (nOpcja)
   {
         case 1: std::cout << fLiczba1 << " + " << fLiczba2 << " = "
                           << fLiczba1 + fLiczba2; break;
         case 2: std::cout << fLiczba1 << " - " << fLiczba2 << " = "
                           << fLiczba1 - fLiczba2; break;
         case 3: std::cout << fLiczba1 << " * " << fLiczba2 << " = "
                           << fLiczba1 * fLiczba2; break;
         case 4:
               if (fLiczba2 == 0.0)
                     std::cout << "Dzielnik nie moze byc zerem!";
               else
                     std::cout << fLiczba1 << " / " << fLiczba2 << " = "
                                << fLiczba1 / fLiczba2;
               break;
         case 0: std::cout << "Dzieki :)"; break;
         default: std::cout << "Nieznana opcja!";
   }
 
   getch();
}

a errory są następujące:

'fLiczba1' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)

'fLiczba2' undeclared (first use this function)

dodanie znaczników <code class="cpp"> i <quote> - furious programming

0

Kompilator pisze że nie zadeklarowałeś: fLiczba1 oraz fLiczba2 uważasz że zadeklarowałeś?

0

Uważam, że nie ale nie wiem jak to teraz zrobić

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