←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

C++
Tablice zmiennych

Zablokowany

  • +
  • -
Kusek - zdjęcie Kusek 24.08.2010

Witam, zacząłem się nie dawno uczyć C++ (2 dni temu) i doszedłem w kursie do tablic zmiennych. Przeczytałem cały dział wszystko git, potem kazali zrobić zadanie o to jego treść
1. Napisz program, który wykona poniższe zadania:

-> 2 + 7 * 16 - 8

-> 22 * 2 : 11

-> 8383 - 222 + 292 * 8

-> 5 * 2 * 4

Wyniki zapisz do tabeli, a następnie wyświetl je na ekranie.

Więc od razu zacząłem brać się do roboty, napisałem już sobie kodzik, szczęśliwy kompiluje go żadnego błędu, włączam program a tutaj jakieś kosmiczne wyniki
Dzialanie        Wynik
--------------------------------
2+7*16-8   = 11576
22*2:11    = 12593
8383-222+292*8 = 10808
5*2*4      = 10804

a tutaj mój kodzik

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

const short MAX_ZNAKOW = 16;
const short LICZBA_DZIAL = 5;
using namespace std;
int main()
{
char dzialania[LICZBA_DZIAL][MAX_ZNAKOW] = {
{'2', '+', '7', '*', '1', '6', '-', '8'},
{'2', '2', '*', '2', ':', '1', '1'},
{'8', '3', '8', '3', '-', '2', '2', '2', '+', '2','9', '2', '*', '8'},
{'5', '*', '2', '*', '4'},
};
short wynik[LICZBA_DZIAL] = {'2+7*16-8','22*2/11','8383-222+292*8','5*2*4'};

cout <<"Dzialanie "<<"Wynik\n";
cout <<"--------------------------------\n";
cout <<dzialania[0]<<" = "<<wynik[0]<<endl;
cout <<dzialania[1]<<" = "<<wynik[1]<<endl;
cout <<dzialania[2]<<" = "<<wynik[2]<<endl;
cout <<dzialania[3]<<" = "<<wynik[3]<<endl;


getch();
return 0;
}


czy da się to jakoś zerować ??
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 24.08.2010

short wynik[LICZBA_DZIAL] = {2+7*16-8,22*2/11,8383-222+292*8,5*2*4};

24 sierpień 2010 - 21:04:
po drugie

char dzialania[LICZBA_DZIAL][MAX_ZNAKOW] = {
    "2+7*16 -8", "22*2:11"}, "8383-222+292*8","5*2*4"
};
a po 3 uzyj petli :D
Odpowiedz

  • +
  • -
Kusek - zdjęcie Kusek 24.08.2010

wiem że to dobrze, ale w zadaniu karzą zrobić tym sposobem

przecież to 1 to jest to samo tylko usunąłeś
' '
a pętli czy jak? ;P


@Edit
No dzięki pomogło to 1, ale jak to się dzieje że usunąłeś tylko
' '
i wwszystko ładnie obliczyło :o

A do tej pętli to jaki kod?

@Edit2
znalazłem coś

7. Pętla

for (i=0; i<a; i++){
for (j=0; j<b; j++){
cout << "#";
}
cout <<"\n";
}

Widzimy tutaj pętle for zawartą w pętli for. Niezły mętlik ale tak naprawdę to bardzo proste. Program najpierw przypisuje i wartość 0 a następnie sprawdza kiedy ma się zatrzymać, a zatrzyma się wtedy gdy i będzie mniejsze od podanej wartości boku a. Następnie pętla zawierająca zmienną j powtórzy ją w linii ciągłej tyle razy na ile długi jest bok b.

Będzie tyle „#” w jednej linii na ile szeroki jest ten prostokąt, a szerokość ta powtórzy się tyle razy na ile wysoki on jest.

Aby wszystko nie było w linii ciągłej niezbędne jest
dodanie odstępu na końcu pętli (cout << „\n”;)


i za bardzo nie rozumiem ^^

cały kod

#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
int a, b, i, j;
cout << "Wprowadz dlugosci bokow a i b prostokata \n" << endl;
cout << "a = ";
cin >> a;
cout << "b = ";
cin >> b;
cout << "\n";
if ((a<0) || (b<0) || (a>30) || (b>30) || (1*a!=a) || (1*b!=b)) {
cout << "\nWprowadziles ujemne lub zbyt duze wartosci bokow\n";
}else
for (i=0; i<a; i++){
for (j=0; j<b; j++){
cout << "#";
}
cout <<"\n";
}
cout << "\n";
system("PAUSE");
return EXIT_SUCCESS;
}

Użytkownik Frajer edytował ten post 24.08.2010 21:17
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 24.08.2010


#include <iostream>

#include <string>

#include <conio.h>



#define MAX_ZNAKOW  16

#define LICZBA_DZIAL  5

using namespace std;

int main()

{

	string dzialania[LICZBA_DZIAL] =

	{

		"2 + 7 * 16 - 8",

		"22 * 2 : 11",

		"8383 - 222 + 292 * 8",

		"5 * 2 * 4"

	};

	int wynik[LICZBA_DZIAL] = {2+7*16-8,22*2/11,8383-222+292*8,5*2*4};



	cout <<"Dzialanie        "<<"Wynik\n";

	cout <<"--------------------------------\n";

	for(int i = 0;i<sizeof(dzialania)/LICZBA_DZIAL;i++){

		cout <<dzialania[i]<<"   = "<<wynik[i]<<endl;

	}





	getch();

	return 0;

}
Odpowiedz

  • +
  • -
Kusek - zdjęcie Kusek 24.08.2010

Dark nigdy bym nie wpadł na taki pomysł xD, jeszcze nie doszedłem do Pętl w kursie. Pytałem się bardziej o poprawienie kodu (Goq thx) w nowatorski sposób ^^

@Edit
Proszę nie zamykać bo będę robić drugie zadanie to jak coś nie będę umieć to się was zapytam jbc. :) ;> :kwiaty:
Użytkownik Frajer edytował ten post 24.08.2010 21:30
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 25.08.2010

Frajer chodzilo o to ze dzialanie dales w "" a to jest traktowane jako txt a nie wyrazenie do obliczenia to po pierwsze po drugie tablica charow moze tworzyc c-string jesli zamiast pojedynczych elementow uzyjesz "" polecam symfonie c++ albo jakis ogarniety poradnik bo jesli w tym twoim cie ucza takiego czegos to watpie zebys daleko zaszedl :D
Odpowiedz

  • +
  • -
Kusek - zdjęcie Kusek 27.08.2010

no mam problemik ;P, czy da się zrobić aby mój interfejs sam się zmieniał??


cout<<"--------------------------------------------\n"
<<"Marka"<<" | "<<"Model"<<" | "<<"Pojemnosc"<<" | "<<"Predkosc max\n"
<<"--------------------------------------------\n";
cout<<marka<<" | "<<model<<" | "<<pojemnosc<<" | "<<max<<endl
<<marka2<<" | "<<model2<<" | "<<float(pojemnosc2)<<" | "<<max2<<endl
<<marka3<<" | "<<model3<<" | "<<float(pojemnosc3)<<" | "<<max3<<endl;
cout<<"--------------------------------------------\n";
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 27.08.2010

jaśniej proszę :)
Odpowiedz

  • +
  • -
Kusek - zdjęcie Kusek 27.08.2010

hmm, chcę aby " | " się przesuwały razem z tekstem i aby były połączone ze sobą, aby robiły ładny szkielet :)
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 27.08.2010

kombinuj z
cout.width(liczba);
lub znakiem \t
miałem gdzieś kod ale znaleźć go nie mogę
Użytkownik DarkGL edytował ten post 27.08.2010 18:32
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 27.08.2010

hmm albo poprostu jak chcesz ladna ramke to mozesz wziąć sobie patent jeszcze z czasow pascala a mianowicie dlugosc najwiekszego txt'u i ustawic all ladnie spacjami tylko nie pamietam jak to bylo ale chyba
zmienna_typu_string.length
Odpowiedz

  • +
  • -
Kusek - zdjęcie Kusek 27.08.2010

i don't understand you, write me all cod, please :blaga: :blaga: :blaga: :blaga: :blaga: :blaga: :blaga: :blaga:

@Edit
dobra poradziłem sobie \t
nie zamykać jeszcze xD
Użytkownik Frajer edytował ten post 27.08.2010 19:03
Odpowiedz

Snejk47 - zdjęcie Snejk47 29.08.2010

Taki mały OT, nie bijcie :P

Jeżeli masz zamiar programować tylko na Windowsa to nie wiem czy jest sens pisania w czystym C++, Windowsy przejmuję teraz .NET (a i na linuxa szybko sobie z portowali (MONO)). Co więcej używając .NET można pisać aplikację na wszystkie Windowsy, np. Windows Mobile: GPS'y (przynajmniej mój ma WMoblile :P), palmtopy PocketPC, palmofony oraz smartphone'y.\ ;) Co więcej szybciej można stworzyć programy. W .NETcie można pisać w C++, VB.NET, C#, J# i inne jak kto lubi. Osobiście polecam VB.NET lub C#. VB.NET bardzo prosty, C# bardziej "wspierany".

Btw. Windows Vista, Se7en ma już .NET Frameworka ;)

Pozdro.
Użytkownik TheSnake edytował ten post 29.08.2010 11:44
Odpowiedz

Snejk47 - zdjęcie Snejk47 29.08.2010

.NET to skrót od .NET Framework, można by powiedzieć, że to drugie "Windows API" Wikipedia. Działa podobnie jak Java, lecz dużo szybciej.

Inaczej mówiąc jest to zbiór bibliotek ułatwiających pracę nad programem. Jak już pisałem wcześniej można tego używać w różnych językach VB.NET (odświeżony Visual Basic), C#, C++, J# - Java.
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 29.08.2010

czYli to zwykłe biblioteki :D ?
Odpowiedz

Snejk47 - zdjęcie Snejk47 29.08.2010

czYli to zwykłe biblioteki :D ?

Nie, Kurs C#, dot. starszej wersji .NET'a, ale przy nowszych oprócz większej funkcjonalności nie ma różnicy.
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 29.08.2010

win api to biblioteka więc .NET także chyba że to platforma do rozprowadzania oprogramowania
Użytkownik DarkGL edytował ten post 29.08.2010 14:39
Odpowiedz
Zablokowany