Prawdziwe oblicze Informatyki. Tysiące linijek kodu i kompilatory które nigdy nie wybaczają.
Awatar użytkownika

winuser

Zasłużony użytkownik
Posty: 1424
Rejestracja: 29 sie 2013, 13:15
    Windows 8.1 Internet Explorer

Post13 paź 2013, 10:51

Mam takie zadanie :
Napisz funkcję, która pobiera dwa znaki z klawiatury i rysuje szlaczek składający się z pięćdziesięciu znaków, gdzie naprzemiennie się znaki przekazane funkcji jako argumenty. Np. *+*+*+*+*+*+*+*+*+*+
Napisałem program, ale nie potrafię poradzić sobie z faktem, że wyświetla on tylko jeden znak i za bardzo nie wiem jak "zakodować go" żeby robił to co jest w poleceniu. Pomoże mi ktoś w tym ? :(

Kod: Zaznacz cały

#include <iostream>
#include <cstdio>
using namespace std;


void szlaczek_dowolny(int i, char znak)
{
  for (int li=0; li<50; li++)
    cout << znak;
  cout << endl;
}

int main()
{

  int k;
  char zn;
  cout << "Jakie znaki? ( zmienna zn) ";
  cin >> zn;
  cout << endl;
  szlaczek_dowolny(k,zn);
  cin.ignore();
  getchar();
  return 0;
}
Laptop: Lenovo ThinkPad T480s | Intel Core i5 8250U | Intel HD 620 | 24GB RAM Hynix | Lexar NM620 NVME 1TB | Windows 10 Pro
PC: MSI Z87-G43 | Intel Xeon E3-1240 v3 | nVidia GTX 760 2GB | 16GB RAM Hynix | GoodRAM PX 500 NVME 512GB | Windows 10 Pro
Mobile: Google Pixel 6 | Google Tensor GS101 @2.8 GHz | Mali-G78 MP20 | 8GB RAM | 128GB MMC | Android 13
Serwer: AsRock AD2550-ITX | Intel Atom D2550 | PowerVR SGX545 | 8GB RAM Kingston | WD HDD 500GB | Windows Server 2012 R2 Datacenter
Sieć: Cudy WR3000 Wi-Fi 6 OpenWRT| Huawei HG8245Q2 | Netia 1Gb/s | RaspberryPi 4
PlayStation 4 | CUH-1116A | 1TB |

Awatar użytkownika

PisarzKsiazkowicz

Moderator
Posty: 2149
Rejestracja: 27 sty 2010, 7:53
    Windows 8 Opera

Post13 paź 2013, 11:08

Miałem bardzo podobny program na PSiO w tamtym roku. o.o

Ogólnie to mam wrażenie, że podajesz mu tylko jeden znak. Ja zrobiłem to po prostu tak:

Kod: Zaznacz cały

void szlaczek(char a,char b) {
     for (int i=0; i<10; i++) cout<<a<<b;
     cout<<endl<<endl;
     }

main()
{
 cout<<"Podaj znak pierwszy"<<endl;
 char a; cin>>a;
 cout<<"Podaj znak drugi"<<endl;
 char b; cin>>b;

 szlaczek(a,b);
 system("pause");
}

Awatar użytkownika

winuser

Zasłużony użytkownik
Posty: 1424
Rejestracja: 29 sie 2013, 13:15
    Windows 8.1 Internet Explorer

Post13 paź 2013, 11:16

Dzięki, jesteś wielki :)

Pełny kod (może komuś się przyda):

Kod: Zaznacz cały

#include <iostream>
#include <cstdio>
using namespace std;


void szlaczek(char a,char b)
 {
     for (int i=0; i<50; i++) cout<<a<<b;
     cout<<endl<<endl;
     }

main()
{
 cout<<"Podaj znak pierwszy"<<endl;
 char a; cin>>a;
 cout<<"Podaj znak drugi"<<endl;
 char b; cin>>b;

 szlaczek(a,b);
 system("pause");

  return 0;
}
Laptop: Lenovo ThinkPad T480s | Intel Core i5 8250U | Intel HD 620 | 24GB RAM Hynix | Lexar NM620 NVME 1TB | Windows 10 Pro
PC: MSI Z87-G43 | Intel Xeon E3-1240 v3 | nVidia GTX 760 2GB | 16GB RAM Hynix | GoodRAM PX 500 NVME 512GB | Windows 10 Pro
Mobile: Google Pixel 6 | Google Tensor GS101 @2.8 GHz | Mali-G78 MP20 | 8GB RAM | 128GB MMC | Android 13
Serwer: AsRock AD2550-ITX | Intel Atom D2550 | PowerVR SGX545 | 8GB RAM Kingston | WD HDD 500GB | Windows Server 2012 R2 Datacenter
Sieć: Cudy WR3000 Wi-Fi 6 OpenWRT| Huawei HG8245Q2 | Netia 1Gb/s | RaspberryPi 4
PlayStation 4 | CUH-1116A | 1TB |

Awatar użytkownika

PisarzKsiazkowicz

Moderator
Posty: 2149
Rejestracja: 27 sty 2010, 7:53
    Windows 8 Opera

Post13 paź 2013, 11:22

Tylko nie może być "i<50" bo wtedy wyrysuje Ci 100 znaków.
W każdej pętli rysujesz dwa znaki. W takim razie, jeśli chcesz otrzymać 50, pętla powinna wykonać się 25 razy. Wysłać Ci ten cały folder z zadaniami na PSiO z tamtego roku w razie czego? Bo coś czuję, że możesz mieć podobne.

Awatar użytkownika

winuser

Zasłużony użytkownik
Posty: 1424
Rejestracja: 29 sie 2013, 13:15
    Windows 8.1 Internet Explorer

Post13 paź 2013, 11:25

Jeśli będziesz tak miły, to wyślij :)
Laptop: Lenovo ThinkPad T480s | Intel Core i5 8250U | Intel HD 620 | 24GB RAM Hynix | Lexar NM620 NVME 1TB | Windows 10 Pro
PC: MSI Z87-G43 | Intel Xeon E3-1240 v3 | nVidia GTX 760 2GB | 16GB RAM Hynix | GoodRAM PX 500 NVME 512GB | Windows 10 Pro
Mobile: Google Pixel 6 | Google Tensor GS101 @2.8 GHz | Mali-G78 MP20 | 8GB RAM | 128GB MMC | Android 13
Serwer: AsRock AD2550-ITX | Intel Atom D2550 | PowerVR SGX545 | 8GB RAM Kingston | WD HDD 500GB | Windows Server 2012 R2 Datacenter
Sieć: Cudy WR3000 Wi-Fi 6 OpenWRT| Huawei HG8245Q2 | Netia 1Gb/s | RaspberryPi 4
PlayStation 4 | CUH-1116A | 1TB |

Awatar użytkownika

Ult1me

Administrator
Posty: 2415
Rejestracja: 05 sie 2008, 15:48
Lokalizacja: Wrocław
    Windows 8.1 Opera
Kontakt:

Post13 paź 2013, 14:05

PisarzKsiazkowicz pisze:Tylko nie może być "i<50" bo wtedy wyrysuje Ci 100 znaków.
W każdej pętli rysujesz dwa znaki. W takim razie, jeśli chcesz otrzymać 50, pętla powinna wykonać się 25 razy. Wysłać Ci ten cały folder z zadaniami na PSiO z tamtego roku w razie czego? Bo coś czuję, że możesz mieć podobne.
Chyba też swoje foldery z zadaniami będę wysyłał, bo jednak się przydają, a ludzie w gruncie rzeczy zadają czasem proste pytania.
Komputery:
Spoiler
Laptop (mój główny komputer): Acer Aspire 5750G | Intel Core i3 2330M (Sandy Bridge) 0.8-2.2GHz | Intel HM65 | 6GB RAM DDR3 | Intel HD Graphics 3000 + nVidia GeForce GT540M (nVidia Optimus) | Crucial MX100 256GB SSD | Broadcom 802.11n Network Adapter | Broadcom NetLink Gigabit Ethernet | Realtek ALC269 (+Dolby Advanced Audio)

Laptop służbowy: HP ProBook

Komputer brata (mój stary): Intel Pentium DualCore E6300 (2x 2.8@1.6-3.25 GHz EIST, 64bit, Intel-VT) | Gigabyte EP43T-UD3L (P43, ICH10) | 2x2 GB RAM DDR3 1066MHz GoodRAM | Palit GeForce GT220 | 2x500 GB (Seagate + SpinPoint F3)

Stacja do napraw: Intel Pentium 4 630 (3.00@2.43 GHz, 64bit, HT, Prescott) | ASUS P5GPL (Intel i915, ICH6) | 2x512 MB RAM DDR1 Kingston (PC-3200) | Gainward GeForce 7300 GT 256 MB DDR2 | jakiś dysk :)

Komputer na części: Intel Pentium III 600 MHz Slot 1 | ASUS P3B-F | 128 MB SDR SDRAM | GeForce 2 MX400 (?) | Seagate 8.4GB PATA

Lumia 625
Dowódca Grupy Odwetowej Mafii C-QUAM, łączącej fanów fal długich, średnich i krótkich, nak***iania kabli j**anych, France Bleu Alsace, The Mighty KBC, Voice of Korea, Warszawskiej Radiostacji Centralnej z najwyższym masztem świata Konstantynowie koło Gąbina, oraz Radiowego Centrum Nadawczego z prawie najwyższymi masztami w Solcu Kujawskim

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość