Z programowaniem zaczynam tak jak teraz z tym tematem, proszę o mocno szczegółową pomoc.
Moim zadaniem jest napisanie trzech programów w C++, sam używam kompilatora Dev-C++ 4.
Pierwszy program sam zrobiłem, typu “Hello World!” zawsze coś.
Oczywiście już na następnym się zatrzymałem. Otóż program ten ma wczytywać liczbę i podnosić ją do potęgi 4.
Niby proste, ale nie wiem… :roll:
Następny program ma obliczyć 4*x-7*y+6.
Ostatni to już dla mnie czarna magia. Muszę napisać program w którym zadeklaruje zmienne różnego typu i ma się wyświetlić w ile miejsca w pamięci zajmują zmienne :?
Czy ktoś mógłby wytłumaczyć jak mam to zrobić, ważniejsza rzecz, żebym to zrozumiał i następnym razem nie musiał pytać ![-o<
No to tak - ile miejsca zajmują zmienne, to poczytaj o sizeof() Mała podpowiedź: jak zadeklarujesz zmienna, np. int a; to zeby wyswietlic ile zajmuje pamięci, to np. cout << sizeof(a) << endl;
Jeśli chodzi o ten wzór (4*x-7*y+6), to nic prostszego. Wystarczy zadeklarować zmienne x i y, np typem int (int x, y;), a potem wysiwetlic sobie, oczywiscie po pobraniu (cin >> x; cin >> y): cout << 4*x-7*y+6 << endl; (tak ja myslę). A jeśli o potęgę chodzi, to najprostszy sposób, jeśli jesteś początkującym, to:
#include
using namespace std;
int main()
{
int liczba;
cin >> liczba;
cout << liczba*liczba*liczba*liczba << endl;
cin.ignore();
getchar();
}
Oczywiście można to za pomocą pętli zrobić jeszcze itd, ale na początek wystarczy Ja mam nadzieję, że zrozumiałeś wszystko
zacznijmy od podniesienia do potęgi, zrobiłem tak jak napisałeś, ale jest 1 błąd, pomyślałem, że przez getchar (); brakuje czegoś, więc wpisałem int , no i zadziałało .
Co do działania, to jak to powinno właśnie wyglądać, gdzie deklarować x i y ? i jako co, jako np. char, czy np: y:=4 Nie rozumiem. Wyszło mi:
#include
using namespace std;
int main ()
{
int x,y;
cin >> x; cin >> y;
cout << 4*x-7*y+6 << endl;
}
#include
using namespace std;
int main ()
{
int x,y;
cin >> x;
cin >> y;
cout << 4*x-7*y+6 << endl;
}
właśnie o to mi chodziło, tylko zadbaj może o estetykę Ale to szczegół. No i żeby ci się od razu nie wyłączył program, warto dać na końcu (po cout) cin.ignore(); getchar(); (tylko może w osobnych linijkach xD, nie tak jak cin’y). Ale ogólnie o to mi chodzilo A, i jeśli chcesz liczbę, to najlepiej int, a jeśli zmiennoprzecinkową to double I operator := jest Pascal’owy.
Co do podnoszenia do potegi, to masz specjalną funkcję pow() lub Math.pow() - nie pamiętam Przyjmuje ona dwa parametry, liczbę, którą podnosisz oraz potęgę. Np. int liczba = pow(2, 3); zwroci 16.
No według mnie, to pow przyjmuje tylko jeden parametr, którym jest liczba (zmienna), którą chcesz podnieść do kwadratu (potęgi 2). Funkcja pow nie podniesiesz raczej do innej potęgi niż do 2 (Nagłówek math.h)
edit:
fakt, sorry, za pomocą pow można podnieść do potęgi podanej w drugim argumencie Moja wina xD
Fiołek - wiem, że poda zły wynik, ale ja tylko odpowiedziałem na pytanie, jak to zrobić xD Ale spoko I to prawda, z pętlą było by wolniejsze, ale nie uważasz, że jak narazie user’owi pytającemu nie robi to różnicy xD
No zrozumiałeś dobrze. Zmienne o różnych to zmienne, które różnią się typami xD Inaczej tego nie umiem wytłumaczyć xD Np. int a; to jest zmienna typu liczbowego, a char b; to zmienna typu “znakowego” xD Tylko teraz wytłumacz ty mi coś. PO CO DAŁEŚ PRZED getchar(); INT?
Zamiast getchar() użyj cin.get(); bowiem nie należy mieszać odczytu synchronicznego z asynchronicznym. Co do podnoszenia do potęgi w pętle to będzie o wiele szybciej niż użycie pow().
A do podnoszenia do potęgi czwartej najszybsza metoda to przez dodatkową zmienna.
#include
#include // w niektórych kompilatorach bez .h
using namespace std;
int main ()
{
double x,y; // w podanej funkcji x i y nie koniecznie muszą być liczbami całkowitymi, więc int nie pasuje
cout<<"podaj x oraz y: ";
cin>>x>>y;
if(cin)
{
cout<<"przy x="<
}
else
{
cin.clear(); // jeżeli po tym else program się kończy to ten wiersz nie jest potrzebny, ale nie pod windowsami
cin.ignore(INT_MAX,'\n'); // to samo co wyżej
cout<<"Blad wprowadzenia danych"<
}
cin.get(); // tylko pod windowsami, ponieważ po zakończeniu programu windowsy natychmiast zamykają okienko
return 0; // koniecznie inaczej system otrzymuje złą informacje o trybie zakończenia programu
}