Forum Gry Hobby Sprzęt Rozmawiamy Archiwum Regulamin

Forum: Amator programowania C++

16.04.2014 22:13
piotr432
1
piotr432
86
Warrior
Image

Amator programowania C++

Uczę się języka programowania C++ z kurs ze strony cpp0x . pl chciałbym się spytać czy dobrze zrobiłem zadanie (spoiler ): zdj (naprawa błędu)

16.04.2014 22:15
jasiekbusz
2
odpowiedz
jasiekbusz
8
Chorąży

Tak, wykonałeś to poprawnie.

16.04.2014 22:30
3
odpowiedz
zanonimizowany861943
46
Generał

Jaki środowisko jeśli można spytać? Specem nie jestem, ale jak dla mnie to to nie powinno się skompilować - nie deklarujesz typu zmiennej. Chyba, że ktoś mnie oświeci jakim cudem to zadziałało? Kompilator sam zdecydował w czasie kompilacji jakiego typu jest zmienna - automatyczne 'auto'?

16.04.2014 22:47
piotr432
4
odpowiedz
piotr432
86
Warrior

CodeBlocks

17.04.2014 00:12
jasiekbusz
5
odpowiedz
jasiekbusz
8
Chorąży

Cholera, faktycznie nie ma typu. CodeBlocks jest dziwny, i nie znam go, ale każdy kompilator ma jakieś dziwaczne strony. Ale to jest przesada, skompilować to się nie mogło.

17.04.2014 00:21
Siepet
6
odpowiedz
Siepet
99
Generał

Ten sam kod, też CodeBlocks - nie kompiluje się z powodu braku inicjalizacji zmiennej, więc jednak nie jest do końca dobrze, bo typ musi być podany przy inicjalizacji.

17.04.2014 00:29
7
odpowiedz
Night Prowler
71
Konsul

Code::Blocks to środowisko programistyczne, a kompilator to MinGW (Windowsowy port Uniksowego GCC).

To nie jest żaden błąd tylko normalne działanie - w C++11 dodano możliwość nie podawania typu zmiennej jeśli zainicjuje się ją w momencie deklaracji. W takim przypadku kompilator zwyczajnie wydedukuje rzeczony typ z zawartości zmiennej (w tym przypadku int). MinGW będąc Windowsowym forkiem GCC jest w miarę zgodne z najnowszymi standardami.

EDIT: Mea culpa - to by zadziałało gdyby dopisać słowo kluczowe auto na początku :/ Teraz zauważyłem, że z lewej jest oznaczony błędny wiersz i domyśliłem się o co chodzi autorowi wątku. Ogólnie kod jest dobry, brakuje tylko nazwy typu.

03.10.2014 20:00
piotr432
8
odpowiedz
piotr432
86
Warrior
Image

Czemu nie wyświetla się imię ?

03.10.2014 20:07
Dym14
9
odpowiedz
Dym14
109
Senator

Bo zmienna jest typu char czyli znak - jeden, dlatego jest tylko 'P'. Zmienna tekstowa to string.

PS jeżeli nie robisz tego dla hobby to bym sobie odpuścił bo taki progres to się robi w 15 minut a nie 5-6 miesięcy.

03.10.2014 20:10
10
odpowiedz
Night Prowler
71
Konsul

Bo "char" to zmienna jedno bajtowa służąca do przechowywania pojedynczych znaków. Musiałbyś zainicjować całą tablicę znaków żeby to zadziałało, w C++ wygodniej jest użyć po prostu zmiennej typu "std::string" (plik nagłówkowy "string").

No i wyrzuć to "#include <stdio.h>" - po co Ci pliki nagłówkowe dla dwóch różnych sposobów obsługi wejścia i wyjścia?

03.10.2014 20:13
piotr432
11
odpowiedz
piotr432
86
Warrior

Dym14 - > szkoła , 5 miesięcy temu uczyłem się dla samego siebie

chwilka to "char" mam zmienić na "string" , jeżeli tak to do nic nie daje

03.10.2014 20:20
12
odpowiedz
Night Prowler
71
Konsul

To bardzo słabe wytłumaczenie, a jeśli wiążesz z programowaniem jakieś plany na przyszłość to sugerowałbym je szybko zweryfikować - programowanie to umiejętność rozwiązywania problemów, rozwiązywania ich samodzielnie. Pytania jakie aktualnie zadajesz dotyczą rzeczy elementarnych, wystarczyło chwilę ruszyć głową. A jeśli masz słabego nauczyciela to po prostu zakręć się wokół jakiś kursów w necie, darmowych podręczników (megatutorial Xiona) czy po prostu kup dobry podręcznik w księgarni (ostatnio wysypało po empikach książkami, nawet jest kilka pozycji poświęconych C++ 11).

EDIT: Zamienić na typ "string" i włączyć do kodu plik nagłówkowy <string> (little tip: dyrektywa #include ;P)

03.10.2014 20:33
piotr432
13
odpowiedz
piotr432
86
Warrior

Jakoś nic mi to nie daje

03.10.2014 20:39
14
odpowiedz
zanonimizowany771529
31
Generał

Chociażby tak:

#include <iostream>

using namespace std;

int main()


string imie;
cout << "Podaj imie: ";
cin >> imie;
cout <<"Twoje imie to : " << imie;
return 0;

03.10.2014 20:45
piotr432
15
odpowiedz
piotr432
86
Warrior

Ja pierdziele robiłem tak samo ;/ #include <iostream>

using namespace std;

int main()


string imie;
string nazwisko;
cout << "Podaj imie: ";
cin >> imie;
cout<< "Podaj nazwisko ";
cin >> nazwisko;
cout <<"Twoje imie i nazwisko to : " << imie << nazwisko ;
return 0;

co mam zrobić aby imię i i nazwisko oddzielenie było ?

03.10.2014 20:54
16
odpowiedz
dirnis1
27
Chorąży

Czader-Master pokazał ci jak ma to wyglądać, tyle tylko że musisz dodać #include<string> na początku

03.10.2014 21:04
17
odpowiedz
zanonimizowany771529
31
Generał

co mam zrobić aby imię i i nazwisko oddzielenie było ?

Takie najbanalniejsze, co powinno ci to głowy przyjść to :

cout <<"Twoje imie i nazwisko to : " << imie <<" " << nazwisko ;

03.10.2014 21:11
piotr432
18
odpowiedz
piotr432
86
Warrior

Czader-Master -> Jezu, rzeczywiście . W sumie to nauczyciel nawet nam nie wspomniał o takim czymś jak string ;d No ale co tam dzięki wielkie za pomoc :)

Tak z zwykłej ciekawości da to się to zrobić z wykorzystaniem tych słów kluczowych auto, break, case, char, continue, default, do, double, else, entry, enum, extern, float, for, goto, if, int, long, register, return, short, sizeof, static, struct, switch, typedef, union, unsigned, void, while ?

03.10.2014 21:33
19
odpowiedz
zanonimizowany998044
19
Senator

Da się tylko pytanie po co?

04.10.2014 14:48
piotr432
20
odpowiedz
piotr432
86
Warrior

g@mers0ft -> Bo takie miałem zapisane słowa kluczowe w podręczniku

04.10.2014 15:25
21
odpowiedz
Łysy.
73
Konsul

Kup Symfonię C++ i przeczytaj ją dokładnie, robiąc ćwiczenia, i nie przechodząc dalej dopóki nie skumasz tego co jest na stronie.

08.10.2014 22:37
piotr432
22
odpowiedz
piotr432
86
Warrior

napisać program sprawdzający czy liczba jest parzysta, ale tylko z zakresu 1-10 , (programie umieścić wartości)
i wtedy w zależności którą liczbę się wpisze, to pokaże czy jest, czy nie

hmm. wykombinowałem coś takiego ale to źle chyba jest

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

using namespace std;
int main()
‹;;
int a;
int b;
a == 2,4,6,8,10;
b == 1,3,5,7,9;

cout << "wpisz liczbe ";
cin >> a||b ;
cout << "twoja liczba jest: " << a << cout "parzytsa " << b << cout "nieparzysta" ;

getch ();
return 0;
›;;

Mam nadzieje , że rozumiecie o co mi chodzi

08.10.2014 22:48
Arxel
23
odpowiedz
Arxel
221
Kostka Rubika

Wyrzuć
a == 2,4,6,8,10;
b == 1,3,5,7,9;
Ponieważ jest to błędna inicjalizacja zmiennych

Zadanie możesz rozwiązać na kilka sposobów. Np.
- Deklarujesz jedną zmienną
- prosisz o input od użytkownika
- sprawdzasz czy wprowadzona cyfra mieści się w przedziale
- jeśli powyższe tak to sprawdzasz czy podana cyfra modulo 2 daje 0, wtedy jest liczbą parzystą (matematyka się kłania)
- w zależności od powyższego wypluwasz na ekran czy cyfra jest parzysta czy też nie

Kolejny sposób to coś, co chyba Ty może miałeś na myśli
- deklarujesz i inicjalizujesz tablicę (jedna wystarczy) intów parzystych
- prosisz o input użytkownika
- sprawdzasz (w pętli) czy podana cyfra znajduje się w tablicy
- wypluwasz tak lub nie

08.10.2014 22:48
RockyX
24
odpowiedz
RockyX
66
Kucyk

a == 2,4,6,8,10;
b == 1,3,5,7,9;

Co według Ciebie robią te dwie linijki?
Gdzie wykonujesz faktyczne sprawdzanie parzystości?

cin >> a||b ;
Co to znaczy?

Spróbuj czegoś takiego:
int a;
cin >> a;
if(a == 2 || a == 4 || a == 6 || a == 8 || a == 10) cout << "parzysta";
else cout << "nieparzysta";

08.10.2014 22:49
piotr432
25
odpowiedz
piotr432
86
Warrior

RockyX o takie coś mi chodziło
Pytanie
if co tak dokładnie robi ?

08.10.2014 22:52
Arxel
😜
26
odpowiedz
Arxel
221
Kostka Rubika

ot, takie skróty myślowe - input, czyli coś co poda użytkownik, czyli cin >> a

[24] toż to niesamowicie brzydki kod i "znacznie mniej" wydajny..
wygoogluj sobie hasło modulo - to są podstawy matematyczne. Bez nich niestety rozpocząć bycie programistą

Czy mając liczbę z przedziału 0-100 będziesz chciał też sprawdzać jej parzystość weryfikując kolejno a == 2 || a == 4 || a == 6 || a == 8 || a == 10 || a == 12 || a == 14 || a == 16 || a == 18 || a == 20....?

Chwyć za Symfonię C++, jak już kiedyś ktoś Ci polecał. Na prawdę.

08.10.2014 22:52
27
odpowiedz
Łysy.
73
Konsul

https://translate.google.pl/#en/pl/input

czyli o wpisanie czegoś na klawiaturce w tym przypadku.

edit:
if co tak dokładnie robi ?

ponownie polecam Symfonię C++, a jeśli nie, to poszukaj kursów w internecie, 'if' to podstawa podstaw jest.

08.10.2014 22:59
28
odpowiedz
zanonimizowany998044
19
Senator

Najszybszy warunek to:

if (a % 2 == 0) cout << a << " jest liczba parzysta.";
else cout << a << " jest liczba nieparzysta.";

08.10.2014 23:05
piotr432
29
odpowiedz
piotr432
86
Warrior

jak zawrzeć w programie
x albo t ?

08.10.2014 23:06
30
odpowiedz
zanonimizowany998044
19
Senator

Nie rozumiem???

08.10.2014 23:07
piotr432
31
odpowiedz
piotr432
86
Warrior

nie ważne

08.10.2014 23:09
Arxel
32
odpowiedz
Arxel
221
Kostka Rubika

else cout << "To jest liczba nieparzysta albo złe dane";
?????

Ale daj spokój - w [30] masz już podane na tacy rozwiązanie..

08.10.2014 23:15
piotr432
33
odpowiedz
piotr432
86
Warrior

Tera druga sprawa mam to zapętlić
I tu rodzi się moje pytanie co dokładnie mam zapętlić ?
Bo wyszedł mi taki potwór

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

using namespace std;
int main()
‹;
int a;
‹;do
cout << "Wpisz liczbe : " ;
cin >> a;
if(a == 2 || a == 4 || a == 6 || a == 8 || a == 10 || a>1 && a<=10 ) cout << "To jest liczba parzysta";
else cout << "To jest liczba nieparzysta";
›;while

getch ();
return 0;


›;

08.10.2014 23:17
Arxel
34
odpowiedz
Arxel
221
Kostka Rubika

Dla -6 wyskoczy, że liczba jest nieparzysta, a to nieprawda.. :-)
Ponadto - wyrób sobie nawyk robienia nawiasów klamrowych po
if ‹
...
› else ‹
...

Bo jeszcze kiedyś popełnisz taką gafę, że po if napiszesz więcej niż jedną linijkę..

08.10.2014 23:19
piotr432
35
odpowiedz
piotr432
86
Warrior

Arxel porawiłem ten chytry błąd "To jest liczba nieparzysta albo podales liczbe z poza zakresu od 1 do 10" :D

ok ale jak zrobić to aby program nam kazał następną liczbę wprowadzić

08.10.2014 23:23
RockyX
36
odpowiedz
RockyX
66
Kucyk

Możesz w tym celu np. wstawić kod w pętlę nieskończoną:
while(true)

//kod, który ma być zapętlony

08.10.2014 23:24
piotr432
37
odpowiedz
piotr432
86
Warrior

while(true)
‹;cout << "Wpisz liczbe : " ;
cin >> a;
if(a == 2 || a == 4 || a == 6 || a == 8 || a == 10 || a>1 && a<=10 ) cout << "To jest liczba parzysta";
else cout << "To jest liczba nieparzysta";
›;

?

08.10.2014 23:40
piotr432
38
odpowiedz
piotr432
86
Warrior

#include <iostream>

#include <conio.h>

using namespace std;

int main(void)

do ‹

int a;
cout << "Wpisz liczbe : " << endl;
cin >> a;
if(a == 2 || a == 4 || a == 6 || a == 8 || a == 10 ) cout << "To jest liczba parzysta";
else cout << "To jest liczba nieparzysta ";
if ( a>=1 && a<=10 ) cout << " " ;
else cout << "lub zle dane " ;

› while (getch() != 27);

return 1;


OK już zrobiłem

09.10.2014 16:44
piotr432
39
odpowiedz
piotr432
86
Warrior

f ( imie == string || nazwisko = string || wiek == char ) jak zrobić tak żeby w imieniu i nazwisko można było tylko wpisywać tekst , a w wieku tylko liczby ?

09.10.2014 17:13
yasiu
40
odpowiedz
yasiu
199
Legend

Ja tam się nie znam na C++, ale tu sprawdzasz z warunkiem OR (LUB) - wystarczy, że jedno jest prawdziwe, i wyjdzie prawda w teście. Jeśli chcesz poinformować, że którykolwiek jest zły, zrób OR ale z warunkiem != - czyli jeśli którekolwiek NIE JEST takie jak ma być, wykonujesz kod z klamerek.

09.10.2014 18:33
41
odpowiedz
zanonimizowany998044
19
Senator

string imie, nazwisko;
int wiek;

cin >> imie;
cin >> nazwisko;
cin >> wiek;

09.10.2014 18:45
piotr432
42
odpowiedz
piotr432
86
Warrior

g@mers0ft niestety nie

09.10.2014 18:46
43
odpowiedz
zanonimizowany998044
19
Senator

Czemu nie?

To forum jest pomocne przy nauce programowania: http://forum.pclab.pl/forum/22-Programowanie/

09.10.2014 19:34
Toshi_
44
odpowiedz
Toshi_
171
Got sarcasm?

@ [39] - WAAAAT 0_o
@ [42] - Oj, tak. Zdecydowanie tak. Pewnie zmyliło cię, że do stringa można wpisać liczbę? ;]

09.10.2014 21:21
piotr432
45
odpowiedz
piotr432
86
Warrior
Image

O to mi chodzi. Można oszukać program

09.10.2014 21:44
46
odpowiedz
Łysy.
73
Konsul

Nic nie oszukałeś, program działa prawidłowo.

string (ciąg znaków) może zawierać zarówno cyfry jak i litery i wiele innych znaków.

Na szybko do głowy przychodzi mi takie rozwiązanie:
-wszystkie wartości (wiek, imie, nazwisko) zapisujesz do zmiennych typu string
-dla kazdej ze zmiennych sprawdzasz, czy zawieraja odpowiednie znaki ascii (http://pl.wikipedia.org/wiki/ASCII)
-jesli nie zawieraja, informujesz uzytkownika o bledzie.

Ale niestety, widząc twoje posty, wiem, że nie ogarniesz. :(

Do czego Ci te zadanka? Do szkoły? Nauczyciel nie tłumaczy nic?

09.10.2014 21:50
maviozo
47
odpowiedz
maviozo
227
autor zdjęć

Może lepiej nie używać cin, tylko (bodajże) getchar() i sprawdzić po kodzie, czy to cyfra czy litera i w ogóle blokować możliwość dodawania jednych bądź drugich :)

Ale to stwarza wiele innych problemów, jak dodanie też obsługi backspace'u i tak dalej i tak dalej...

09.10.2014 22:15
piotr432
48
odpowiedz
piotr432
86
Warrior

Z tym oszukaniem chodziło mi że wyświetla liczby a ma ich nie wyświetlać .

Ale niestety, widząc twoje posty, wiem, że nie ogarniesz. :( zapewne tak bo nauczyciel nawet nam nie mówi o niczym w sumie sam wszystko muszę szukać i kombinować o potem widzicie takie efekty .

-dla każdej ze zmiennych sprawdzasz, czy zawierają odpowiednie znaki ascii
czyli to będę musiał wykorzystać if ?

if( imie == ( odwołanie do acsii ) || nazwisko == ( odwołanie do ascii)) cout balbla bla....
Tak to może mniej więcej wyglądać ?

a druga rzecz zakupiłem sobie Symfonie C++ a więc nie długo was nie będę męczył

Do czego Ci te zadanka? Do szkoły? Tak Nauczyciel nie tłumaczy nic? Tak

09.10.2014 22:36
49
odpowiedz
Łysy.
73
Konsul

#include <iostream>
#include <string>

using namespace std;

int main()
‹;
string name;

cout << "give me a name: ";
cin >> name;

for(int j = 0 ; j < name.length() ; j++)
‹;
if(int(name[j]) < 65 || int(name[j]) > 122)
‹;
cout << "wrong name format, number in a name.";
break;
›;
›;

system("pause");
›;

tak by to wygladalo. jest tez for i break. wygooglach/wybinguj sobie o co chodzi.

09.10.2014 22:48
Toshi_
50
odpowiedz
Toshi_
171
Got sarcasm?

W tym ifie chyba chodziło ci o rzutowanie name[ i ] na int, nie całego stringa ;)

09.10.2014 22:50
51
odpowiedz
Łysy.
73
Konsul

'i' w nawiasach kwadratowych daje italic

edit: widzę też się na to złapałeś ;)

09.10.2014 22:52
piotr432
52
odpowiedz
piotr432
86
Warrior

Łysy. muszę cię zmartwić ale to ma wyglądać jak ulepszenie tego programu co ja zarobiłem

09.10.2014 22:56
Arxel
😜
53
odpowiedz
Arxel
221
Kostka Rubika

A tak w ogóle to ja polecam Jave :P

09.10.2014 22:58
54
odpowiedz
Łysy.
73
Konsul

piotr432, muszę Cię zmartwić, właśnie dałem Ci całkiem sprawne rozwiązanie problemu, jedyne co musisz zrobić, to ogarnąć, gdzie wkleić pętlę for w swój kod (trzykrotnie, dla każdej ze zmiennych), i dwie z tych wklejek odpowiednio zmodyfikować. Przy odrobinie chęci nie powinno to być w ogóle trudne. Wierzę, że dasz radę!

edit: a ja polecam Pythona!

09.10.2014 22:59
piotr432
55
odpowiedz
piotr432
86
Warrior

Łysy.-> spoko coś sobie wymyślę z tym co mi napisałeś :) Dzięki wielkie :) A teraz na dobranoc fizyka i symfonia C++ :D

10.10.2014 00:16
Toshi_
56
odpowiedz
Toshi_
171
Got sarcasm?

[53] - a ja C#... czyli prawie to samo ;D

13.10.2014 22:17
piotr432
57
odpowiedz
piotr432
86
Warrior
Image

Mały problem jest jakoś przerw mi brakuje między

13.10.2014 22:26
58
odpowiedz
QrKo
148
Yarr!

Jakich przerw pomiedzy?
I dlaczego w pierwszym komentarzu napisales ze pierwsze lecą spacje, skoro w petli nizej lecą gwiazdki.

13.10.2014 22:28
59
odpowiedz
zanonimizowany861943
46
Generał

Eee... Jaśniej? Program robi dokładnie to co wynika z kodu (nie z komentarzy), z czym niby jest problem?

13.10.2014 22:29
piotr432
60
odpowiedz
piotr432
86
Warrior

nie czytaj komentarzy

chodzi o to żeby była choinka na czubku i zapewne o czymś głupim zapomniałem zmieniając kod

13.10.2014 22:38
Toshi_
61
odpowiedz
Toshi_
171
Got sarcasm?

W takim razie faktycznie powinieneś najpierw wypisywać spacje a dopiero potem gwiazdki.
A dokładniej to i spacji a potem n-2i gwiazdek.

13.10.2014 22:49
piotr432
62
odpowiedz
piotr432
86
Warrior

#include <iostream>
using namespace std;

int main()
‹;(klamra ot.)
int n;
cout << "Ile wierszy? ";
cin >> n;

for (int i = 0; i < n ; i++)
‹;(klamra ot )

for (int j = 1; j < 2 * i - j; j++)
cout << ' ';

for (int j = 0; j < n - i ; j++)
cout << '*';
cout << endl;
(klamra zam) ›;
return 0;
›; (klamra zam)

jest mały progres

OK zrobiłem :D
#include <iostream>
using namespace std;

int main()

int n;
cout << "Ile wierszy? ";
cin >> n;

for (int i = 0; i < n ; i++)

for (int j = 1; j < 2 * i - j; j++)
cout << ' ';

for (int j = 0; j < 2 * n - 2 * i - 1 ; j++)
cout << '*';
cout << endl;

return 0;

13.10.2014 23:08
Toshi_
63
odpowiedz
Toshi_
171
Got sarcasm?

Tak na szybko wklepałem to sobie w C# (C++ nie tknąłbym kijem) - składnia podobna, więc raczej się połapiesz.
http://pastebin.com/DXF5B1dZ

Btw, do wklejania takiego kodu zalecam stosowanie tego i/lub podobnych serwisów. Jest to dużo wygodniejsze a kod przejrzystszy (z podświetlaniem składni).

13.10.2014 23:11
64
odpowiedz
zanonimizowany981506
0
Chorąży

[63]
Cholera, widzę że trzeba będzie sie przerzucić na Jave/C#.
Mam dość C++ i tej złożoności, a tutaj widzę na chłopski rozum od razu o co chodzi.

13.10.2014 23:17
piotr432
65
odpowiedz
piotr432
86
Warrior
13.10.2014 23:19
Toshi_
66
odpowiedz
Toshi_
171
Got sarcasm?

Tia, składnia Javy czy C# jest sporo bardziej przejrzysta. Do tego te języki są sporo bardziej "przyjazne" dla użytkownika, bo sporo jest w nich robione automatycznie. Na przykład pozbywanie się niepotrzebnych zasobów - w Javie/C# jest to robione przez automat w tle, w C++ musisz o tym pamiętać i "własnoręcznie" się tym zajmować bo inaczej możesz mieć wycieki pamięci.
C++ jest raczej dla ludzi, którzy wiedzą co robią ;D

A co do kodu - też jest ok, ale z jednym błędem: w pierwszej zagnieżdżonej pętli powinien być warunek j <= 2 * i - j, bo inaczej obcina jedną spację.

13.10.2014 23:19
67
odpowiedz
QrKo
148
Yarr!

polaqu123 - to jeszcze bardziej poprawie Ci humor i powiem, że działa to również w drugą stronę. Pisząc kod w VS masz genialne intellisense, które nie raz potrafiło zafundować mi istny opad szczeny po tym jak wpisałem coś "po chłopsku", a to nie dośc, że się skompilowało to jeszcze działało dokładnie tak jak powinno.

13.10.2014 23:24
Toshi_
68
odpowiedz
Toshi_
171
Got sarcasm?

Nie tylko w Visualu - IDE bardziej "javove" (Netbeans, Eclipse i masa innych) też mają całkiem niezłe "podpowiadacze" a do tego mnóstwo pluginów dodających JESZCZE więcej bajerów.

13.10.2014 23:25
piotr432
69
odpowiedz
piotr432
86
Warrior

Toshi_ -> gdzie obcina ? u mnie wszytko jest
EDIT a ok ale to nie ma różnicy

13.10.2014 23:27
Toshi_
70
odpowiedz
Toshi_
171
Got sarcasm?
Image

Wróć, nie w pierwszym ale w drugim wierszu -->
Nie dodało początkowej spacji, bo przy i = 1 wchodzisz w "spacjową" pętlę i przy j = 1 warunek j < 2*i - j nie zachodzi -> 1 nie jest mniejsze od 1 ;]

13.10.2014 23:36
piotr432
71
odpowiedz
piotr432
86
Warrior
Image

u mnie jest tak

13.10.2014 23:39
Toshi_
72
odpowiedz
Toshi_
171
Got sarcasm?

TAKI wydruk dostajesz przy ostrej nierówności? 0_o
EDIT: Aaa, widze że w obu pętlach zaczynasz od j = 0... Wcześniej pętlę ze spacjami zaczynałeś od j = 1, więc nierówność zwracała false.

13.10.2014 23:48
piotr432
73
odpowiedz
piotr432
86
Warrior

http://pastebin.com/vVZTiv6C
oj tam czepiasz się :D

13.10.2014 23:51
Toshi_
😁
74
odpowiedz
Toshi_
171
Got sarcasm?

Czepiam, czepiam, bo takie szczególiki często powodują całkiem spektakularne błędy w największych aplikacjach.
Wiem, bo już trochę ich wydebugowałem ;D

14.10.2014 00:00
piotr432
75
odpowiedz
piotr432
86
Warrior

Programista z zawodu ?

14.10.2014 00:04
Toshi_
😊
76
odpowiedz
Toshi_
171
Got sarcasm?

Tia, chociaż na razie bezrobotny... Aaale 3 listopada zaczynam w nowej firmie - ciekawe co z tego wyjdzie ;D

14.10.2014 00:07
piotr432
77
odpowiedz
piotr432
86
Warrior

Mam głupie pytanie :D
Dało by radę abyś raz na jakiś czas zobaczył u mnie jakiś program czy coś w tym stylu i zobaczył czy dobrze :) ?

14.10.2014 00:10
Toshi_
78
odpowiedz
Toshi_
171
Got sarcasm?

A czy my aby nie robimy dokładnie tego w tym wątku? ;]

14.10.2014 00:12
piotr432
79
odpowiedz
piotr432
86
Warrior

No niby tak :D

14.10.2014 00:13
80
odpowiedz
zanonimizowany981506
0
Chorąży

Jak z zarobkami dla początkujących, bo nie podają w ofertach.

Dają chociaż te 2-2,5 na rękę, czy jałmużnę co by nie zdechnąć z głodu w pracy?

14.10.2014 00:25
Toshi_
81
odpowiedz
Toshi_
171
Got sarcasm?

To zależy od firmy, miasta/państwa, języka/technologii, zapotrzebowania na ludzi itd.
Ale zwykle ktoś świeżo po studiach, bez konkretniejszego doświadczenia ale orientujący się w jakimś języku może liczyć na 2k zł netto wzwyż. Widziałem też specyficzne oferty pracy jako "młodszy programista" z widełkami 4-6k zł, ale to było w jakimś egzotycznym języku (którego nawet nie pamiętam), więc pewnie ciężko było im znaleźć kogoś obeznanego.

28.10.2014 15:56
piotr432
82
odpowiedz
piotr432
86
Warrior

http://pastebin.com/ejYmeV5w co jest w tym źle ?

28.10.2014 16:06
83
odpowiedz
Polzka
4
Centurion

Dlaczego warunki "if" piszesz wcześniej nim użytkownik poda wartość do zmiennej? Kod wykonuje się od góry do dołu, linijka po linijce więc powinieneś robić tak:

//pobranie liczby od użytkownika i przypisanie wartości do zmiennej
//instrukcja warunkowa IF np. if (A <= 0) to...

ale w takim przypadku lepiej byłoby ładować rzeczy do REPEAT UNTIL, czyli "powtarzaj kod póki..." i właśnie byłoby tak, że jeśli A będzie jakieś tam (warunek), to ci będzie powtarzało kod ze środka aż warunek się spełni, czy coś. Albo lepiej użyj DO WHILE, czyli
do
‹;;
//tu jakis kod
›;; while(warunek jakis);

wtedy na luzie sobie zrobisz program, w którym użytkownik będzie zmuszony podać liczby większe niż 0 i będzie spoko.
Proponuję ci zobaczyć w google przykład użycia tego DO WHILE i REPEAT UNTIL i wtedy w nowym projekcie sobie przetestujesz działanie i zrozumiesz jak to działa. To prosta rzecz. A wtedy zmodyfikujesz se swój program rozumiejąc wszystko.

@polaqu123 widziałem oferty pracy dla gości znających PHP lub C++ za NAJNIŻSZĄ KRAJOWĄ! były to oferty na stronie urzędu pracy :D więc teraz już wiesz, że programiści mogą zarabiać od najniższej krajowej do wielotysięcznych pensji, przy czym początkującemu programiście większość osób zaoferuje raczej z 2 tysiaki brutto, może z 2500, 3000 jak poszczęści mu się.

28.10.2014 16:10
piotr432
84
odpowiedz
piotr432
86
Warrior

Mam już ten program w do.. while zrobiony teraz szukam drugiego sposobu

28.10.2014 16:11
85
odpowiedz
Polzka
4
Centurion

na co ci inne sposoby? To sprawdź w google co to: c++ Goto

4programmers.net/C/Goto

28.10.2014 16:20
piotr432
86
odpowiedz
piotr432
86
Warrior

http://pastebin.com/FDeXdAqZ poprawiona wersja ale nadal nie działa tak jak bym chciał

28.10.2014 16:26
87
odpowiedz
Polzka
4
Centurion

Napiszę ci jak twój kod działa. Zaznaczam, że nie znam C++

Twój kod:
cout << "\n Podaj pierwszy bok: "; //wyswietlenie tekstu
cin >> a; //pobranie wartosci uzytkownika i przypisanie jej zmiennej "a"
if(a<0); //warunke "Jezeli (a jest mniejsza od 0) to... i NIC, koniec, sprawdziło warunek, jednak nic dalej nie robi
else
cout << "\n Wprowadz ponownie : ";
cin >> a;

A i naucz się używania klamr (forum to chyba cenzuruje klarmy więc zastąpię je nawiasami kwadratowymi)

if (warunek)
[
//kod
] else
[
//kod
]

tak chyba w c++ można? Czytelniej jest wtedy. Pamietaj, że jak dajesz instrukcję IF (czyli "jeżeli") to po niej masz napisać kod, który się wykona jeśli warunek zostanie spełniony. Jak nie napiszesz żadnego kodu po warunku IF, to nie wykona się nic (w sensie wykona NIC i przejdzie do dalszych linii kodu).

W twoim przypadku po instrukcji IF mógłbyś użyć funkcji GOTO by przeskoczyć do kodu wyżej, ale Goto chyba nie jest używaną funkcją, tzn. istnieje ona i sprawdza się, ale chyba nikt jej nie używa bo lepiej użyć do while, repeat until itd

Jakbyś pisał kiedyś programy normalne, okienkowe, to wtedy byś sobie w kodzie napisał np. 10 funkcji, które mogą coś zwracać lub nie zwracają niczego, ale wykonują daną rzecz i wtedy byś w instrukcjach warunkowych np. do while, używał funkcji danej.

28.10.2014 16:30
piotr432
88
odpowiedz
piotr432
86
Warrior

nie miałem goto a to co podałeś nie działa

czytaj 'else' without a previous 'if'

28.10.2014 17:14
89
odpowiedz
Polzka
4
Centurion

pastebin.com/AqeuPDMJ

tu napisałem ci przykład jak działają instrukcje IF ELSE i funkcja GOTO. Aż specjalnie dev c++ pobrałem i nie znam c++, ale działać, działa wszystko. A ten przykład banalny jest, łatwo zrozumiesz co i jak działa. A na końcu po wszystkim dałem goto, który odpala kod od miejsca "startujemy:". Dzięki temu przykładowi będziesz mógł sobie zmodyfikować swój kod i wrzucić funkcję GOTO w instrukcji warunkowej.

02.11.2014 11:16
piotr432
90
odpowiedz
piotr432
86
Warrior
Image

No nie o co chodzi ? Przedtem tego nie było ->
"Build messages "

02.11.2014 11:49
Toshi_
91
odpowiedz
Toshi_
171
Got sarcasm?

Rozszerzenie pliku to .c, więc kompilator traktuje kod, jakby był napisany w C a nie C++. Zmień rozszerzenie na .cpp i przebuduj - powinno już ruszyć.

02.11.2014 12:04
piotr432
92
odpowiedz
piotr432
86
Warrior

już się udało. Mam nowe zadanie zrobić z gwizdek prostokąt .
Mam coś takiego
http://pastebin.com/cPWaF4fD zastanawiam się jak napisać warunek z gwizdkami

02.11.2014 13:38
Toshi_
93
odpowiedz
Toshi_
171
Got sarcasm?

Proste - robisz n pętli, każda zawiera znowu p pętli, przy czym:
- jeśli jest to pierwsza albo n-ta "zewnętrzna" pętla, to w każdej z p "małych" pętli wypisujesz gwiazdkę
- w pozostałych przypadkach gwiazdkę wypisujesz tylko w pierwszej i p-tej pętli, w pozostałych robisz spację

06.11.2014 16:29
piotr432
94
odpowiedz
piotr432
86
Warrior

http://pastebin.com/GTR7FyFN ja zrobić instrukcje żeby pisało miesiąc po wybranu numerku?

07.11.2014 23:18
Toshi_
95
odpowiedz
Toshi_
171
Got sarcasm?

Pierwsza podpowiedź: a w jaki sposób wypisujesz cokolwiek? Popatrz na default.
Druga podpowiedź: switcha masz poprawnego, ale kompletnie nie rozumiem wyrażeń w case'ach. Co string "styczen" ; miało wg ciebie robić? :D

08.11.2014 00:16
96
odpowiedz
dirnis1
27
Chorąży

dlaczego podajesz wartość do 'a' a w switchu masz "numer"?
zmien numer na a oraz usuń stringi zamiast których zrób couty

12.11.2014 17:02
piotr432
97
odpowiedz
piotr432
86
Warrior

http://pastebin.com/fvW6tw71 jak zrobić warunek aby ta środkowy rządek się przeplatał się sam a żeby to ręczenie nie pisać ?

Forum: Amator programowania C++