• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

undefined reference to `rysowanie(char, int, int, in) :/

Object Storage Arubacloud
0 głosów
394 wizyt
pytanie zadane 15 lutego 2022 w C i C++ przez Marcinek23 Nowicjusz (120 p.)

Witam, niestety nie potrafię poradzić sobie z problemem w linijce 26 undefined reference to `rysowanie(char, int, int, int) po przejrzeniu paru podobnych projektów nie mogłem niestety tego naprawić :/

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

/*------------------------------------------------------------------------------------
------------------------------------------------------------------------------------*/
using namespace std;
void pulpit();
int wherex();
int wherey();
void gotoxy(int x, int y);
void clreol();
int dane(int rozmiar);
void rysowanie(char znak, int x, int y, int rozmiar);
void przesuwanie(char znak, int x, int y, int rozmiar);
char znak;
int rozmiar=0;
int x=0;
int y=25;

int main()
{
    char x=znak;
    int rozmiar=0; //przypisanie zmiennej size wartosci od uzytkownika
    rysowanie(znak, x, y, rozmiar); //wywolanie funkcji rysowanie, ktora rysuje nasza figure


    pulpit();
    std::cout << "" << std::endl;
    std::cout << "Podaj znak z jakiego ma sie skladac figura: " << std::endl;
    std::cin >> znak;
    std::cout << "Podaj rozmiar figury (3-20): " << std::endl;
	std::cin >> rozmiar;

    dane(rozmiar);
    do{
    auto rysowanie(char znak, int x, int y, int rozmiar)->void;
    _getch();
    }while(_getch()!=25);
   return 0;
}
/*------------------------------------------------------------------------------------
------------------------------------------------------------------------------------*/
void pulpit()
{
    std::cout << std::endl;
    std::cout << "_______________________________" << std::endl;
    std::cout << "|                             |" << std::endl;
    std::cout << "|           *     *           |" << std::endl;
    std::cout << "|           *     *           |" << std::endl;
    std::cout << "|           *  *  *           |" << std::endl;
    std::cout << "|           * * * *           |" << std::endl;
    std::cout << "|           **   **           |" << std::endl;
    std::cout << "|_____________________________|" << std::endl;
    std::cout << " Napisz program rysowania znakiem ASCII ponizszej figury." << std::endl;
	std::cout << " Program powinien umozliwic : " << std::endl;
	std::cout << std::endl;
	std::cout << " - wybor znaku ASCII;" << std::endl;
	std::cout << " - Wszytanie poczatkowych rozmiarow figury;" << std::endl;
	std::cout << " - przesuwanie figury klawiszami strzalek;" << std::endl;
	std::cout << " - powiekszanie oraz zmniejszanie rozmiaru figury za pomoca klawiszy + i -;" << std::endl;
	std::cout << " - ograniczenie przesuwania i rozmiarow figury do obszaru ekranu;" << std::endl;
	_getch();
}
/*------------------------------------------------------------------------------------
------------------------------------------------------------------------------------*/
int wherex()
{
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi);
return csbi.dwCursorPosition.X;
}
/*------------------------------------------------------------------------------------
------------------------------------------------------------------------------------*/
int wherey()
{
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi);
return csbi.dwCursorPosition.Y;
}
/*------------------------------------------------------------------------------------
------------------------------------------------------------------------------------*/
void gotoxy(int x, int y)
{
COORD c;
c.X = x - 1;
c.Y = y - 1;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
}
/*------------------------------------------------------------------------------------
------------------------------------------------------------------------------------*/
void clreol()
{

	int x, y;
	x = wherex();
	y = wherey();
	gotoxy(x,y);
	for (int i =x; i<=79; i++)
		cout << " ";
	gotoxy(x, y);}
/*------------------------------------------------------------------------------------
------------------------------------------------------------------------------------*/
int dane(int rozmiar)
{
    char znak;
    system("cls");
    label:
        if(rozmiar < 3 || rozmiar > 20 ){
std::cout << "podales zle dane, podaj jeszcze raz" << std::endl;
getch();
goto label;
}
return rozmiar;
}
/*------------------------------------------------------------------------------------
------------------------------------------------------------------------------------*/
void rysunek(char znak, int rozmiar){
    system("cls"); //wyczyszczenie konsoli
    char ch; //zainicjowanie zmiennej ch - znak, ktory potem bedzie sluzyl od sterowania
    for(int i=0;i<120;i++){ // zadeklarowanie szerokosci terminala na 120
        std::cout << " ";
    }
    int x=60,y=15; // ustawienie "poczatku" na srodku
    label: //punkt kontrolny label
    system("cls"); //wyczyszczenie konsoli
    gotoxy(x,y); //ustawienie kursora na pozycji
    std::cout << znak; //narysowanie znaku na srodku
    for(int i=1;i<rozmiar;i++)
        { //rysowanie znakow w trzy pozostale strony
        /*gotoxy(x-i,y+i); //przejscie do wspolrzednych "w lewo i w dol"
        std::cout << znak; //narysowanie znaku
        gotoxy(x-i,y-i); //przejscie do wspolrzednych "w lewo i w gore"
        std::cout << znak; //narysowanie znaku
        gotoxy(x+i,y-i); //przejscie do wspolrzednych "w prawo i w gore"
        std::cout << znak; //narysowanie znaku*/
        gotoxy(x-i,y+i);
        std::cout << znak;
        gotoxy(x+i,y+i);
        std::cout << znak;
        gotoxy(x-rozmiar,y-rozmiar+i);
        std::cout << znak;
        gotoxy(x+rozmiar,y-rozmiar+i);
        std::cout << znak;
        gotoxy(x-rozmiar,y+rozmiar-i);
        std::cout << znak;
        gotoxy(x+rozmiar,y+rozmiar-i);
        std::cout << znak;
        gotoxy(x-rozmiar,y);
        std::cout << znak;
        gotoxy(x+rozmiar,y);
        std::cout << znak;
    }
    ch=getch(); //pobranie "kierunku" w ktory ma sie przesunac rysunek
    switch(ch)
    {
        case 43: rozmiar++;
        break;
        case 61: rozmiar--;
        break;      //
        case 72: y--; // strzalka w dol
                break;
        case 80: y++; //strzalka w gore
                break;
        case 77: x++; //strzalka w prawo
                break;
        case 75: x--; //strzalka w lewo
                break;
        case 'q': exit(0); //zakonczenie programu
                break;
    }
    goto label; //przeskoczenie do punktu label
    getch();
}

/*------------------------------------------------------------------------------------
------------------------------------------------------------------------------------*/

 

komentarz 15 lutego 2022 przez Oscar Nałogowiec (29,290 p.)
Funkcja nazywa się rysunek a nie rysowanie, ale to chyba nie to. Samej funkcji rysowanie nigdzie nie ma...

Wywołanie funkcji to trochę inaczej się pisze. To nie definicja.

Wywal te goto - przecież robisz tam zwykłe pętle.
komentarz 15 lutego 2022 przez Marcinek23 Nowicjusz (120 p.)
nic to nie dało niestety :/

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
2 odpowiedzi 256 wizyt
pytanie zadane 7 stycznia 2023 w C i C++ przez mayak Nowicjusz (120 p.)
0 głosów
2 odpowiedzi 793 wizyt
+1 głos
2 odpowiedzi 598 wizyt
pytanie zadane 14 maja 2021 w C i C++ przez Pakucza Nowicjusz (130 p.)

92,556 zapytań

141,403 odpowiedzi

319,560 komentarzy

61,942 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...