Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Pytanie do zadania z programowania.

Ostatnio zmodyfikowano 2013-11-17 12:07
Autor Wiadomość
dejmien
Temat założony przez niniejszego użytkownika
Pytanie do zadania z programowania.
» 2013-11-16 19:12:14
Witam.

Mam zadanie z informatyki z programowania w C++ i potrzebuje pomocy w kilku sprawach.
W moim programie ma być kilka opcji, miedzy innymi takie działanie:

,,Za pomocą podstawowych poleceń związanych z wyświetlaniem i wczytywaniem zmiennych z ekranu, napisz program,

który będzie przyjmował od użytkownika 4 liczby: L1, L2, L3, L4, a następnie będzie wyświetlał:

- sumę liczb od L1 do L3

- średnią wszystkich wprowadzonych liczb

- obliczone równanie (L1+L2+L3+L4)/L3"

Mniej więcej wiem jak to zrobić jednak na początku tworzenia kodu wystapił problem:
C/C++
#include <conio.h>
#include <iostream>

void main() // Tytul programu i mozliwe opcje do wyboru
{
    std::cout << "\t\t     ==========================" << std::endl;
    std::cout << "\t\t     ||Wielofunkcyjny Program||" << std::endl;
    std::cout << "\t\t     ==========================" << std::endl;
   
    int opcja;
    std::cout << "\n\nOpcje Programu:" << std::endl;
    std::cout << "\n\n1.Operacje na podanych liczbach." << std::endl;
    std::cout << "2.Kalkulator." << std::endl;
    std::cout << "3.Kalendarz." << std::endl;
    std::cout << "0:Wyjscie z Programu" << std::endl;
    std::cin >> opcja;
   
   
    switch( opcja ) // opcje wyboru
    {
    case 1:
        int zmienna1[ 4 ];
        std::cout << "Podaj cztery liczby rzeczywiste:" << std::endl;
        std::cin >> zmienna1[ 0 ];
        std::cin >> zmienna1[ 1 ];
        std::cin >> zmienna1[ 2 ];
        std::cin >> zmienna1[ 3 ];
       
       
        std::cout << zmienna1[ 0 ] << "+" << zmienna1[ 1 ] << "+" << zmienna1[ 2 ] << "+" << zmienna1[ 3 ] << "+" << zmienna1[ 4 ] << "=" << zmienna1[ 0 ] + zmienna1[ 1 ] + zmienna1[ 2 ] + zmienna1[ 3 ] << std::endl;
        getch();
    }
}


Po pierwsze, gdy kompiluje program to wynik wyskakuje mi np. tak: 2+4+5+6 +-312132 = 17   - Wiecie dlaczego tak się dzieje?
Po drugie: wiecie jak uprościć używanie tablic zmiennych? czy da się to w ogóle jakoś uprościć? Chodzi mi o to że jest to trochę męczące wypisywanie np. zmienna1 [0] + zmienna1 [1] itp.

To oczywiście nie jest gotowy program tylko zakończyłem go aby sprawdzić czy pierwsza opcja będzie działać.
P-96362
kubek3898
» 2013-11-16 19:16:59
Bo element n tablicy o rozmiarze n nie istnieje! Tablice indeksujemy od 0 i konczymy na n - 1.

I skąd wziąłeś te void main()? main ma zwracać typ int.

A co do pytania drugiego - pętle.
P-96363
Buby
» 2013-11-16 19:27:54
Poza tym, w instrukcji
switch ---> case
 zapomniałeś o
break
.
Bez tego program wykona instrukcje do napotkania
break
 lub do zakonczenia instrukcji
switch
.
P-96364
dejmien
Temat założony przez niniejszego użytkownika
» 2013-11-16 19:40:10
Acha tak teraz już wiem... przez nie uwagę dodałem zmienna1 [4] a ma być do [3] dzięki.

Aby uprościć te tablice zmiennych to należy zastosować pętlę for?

Mam jeszcze drugie pytanie:

Korzystając z pętli for/while/do...while napisz program, który stworzy kalendarz. Korzystając z instrukcji

warunkowych if(warunek) {blok poleceń} lub switch (zmienna) {case wartości_zmiennej: blok poleceń break;},

Pozwól u¿ytkownikowi na wyświetlanie kalendarza, dla poszczególnych miesięcy. Sformatuj wyświetlanie liczb

w oknie dialogowym.

Nie wiem za cholerę jak zrobić taki kalendarz przy pomocy tych pętli nawet nie wyobrażam sobie jak to ma wyglądać... może ktoś pomóc z tym?
P-96365
Buby
» 2013-11-16 19:55:10
Acha
 - przepraszam z góry, ale na pisownie uważam. W tej sytuacji powinieneś napisać to 'aha' :P

A teraz do rzeczy. Plan tworzenia kalendarza:
1. Powitanie i nazwa, np. "Witaj w KallendarCpp2013".
2.Opis wyboru miesiaca.
3. Wybór miesiąca.
Możesz zrobić menu bez wciskania enter, np.:

C/C++
int ZakonczPetle = 0;
while( ZakonczPetle != 1 )
{
    int NumerZnaku = getch();
   
    switch( NumerZnaku )
    {
    case /* Kod znaku w ASCI */:
        /* Wyswietl miesiac */
        ZakonczPetle = 1;
        break;
    }
   
}
4. Zrobić okna dialogowe w pliku .rc
http://cpp0x.pl/kursy​/Kurs-WinAPI-C++/Podstawy​/Okna-dialogowe-cz-1/184


To wszystko, oczywiscie jeśli masz napisać aplikację w konsoli, która wyświetli okna dialogowe [o ile to możliwe].
Ja bym Ci proponował napisać w WinApi aplikację okienkową, z listą miesięcy, a po kliknięciu na kontrolke z nazwą miesiąca
wyświetlałoby Ci się okno dialogowe. :)

@Edit:

Pekfos, pomylilo mi się z char -,-'
P-96367
pekfos
» 2013-11-16 20:04:38
Możesz korzystać ze stringa, np.
Od kiedy można tak używać switch?
P-96368
dejmien
Temat założony przez niniejszego użytkownika
» 2013-11-16 20:39:39
To wszystko to musi być aplikacja konsolowa tak więc jakieś okienka odpadają.

Kurde no nie mogę sobie poradzić z tym zadaniem... Czy switch można użyć kilka razy w funkcji? Bo mam tam do wyboru kilka opcji np. kalendarz i kalkulator i np. gdy przy pomocy switch wybieram kalkulator to pasowało by znów użyć opcji switch aby wybrać konkretne działanie np. dodawanie odejmowanie itp... Czy można tak kilka krotnie użyć switch? Po prawdzie to użyć switch w opcji switch.

Przykłądowo mam

C/C++
switch( opcja )
{
   
case 1:
    cos tam cos tam
   
case 2:( tu ma byc wywolywany kalkulator )
    std::cout << "1. dodawanie" << std::endl
Tutaj ta sama czynnośc: odejmowanie dzielenie itp. chodzi o to żeby stworzyć możliwość wyboru. I teraz gdy trzeba wybrać to działanie to trzeba zrobić tak?
    
C/C++
switch( wybor )
{
   
case 1:( dodawanie itp.)
}
}

Czy można tak tego użyć??
P-96375
Buby
» 2013-11-16 20:42:02
Tak, można zagnieżdżać warunek switch ---> case.
I nie zapomnij o break na końcu. :P
P-96376
« 1 » 2
  Strona 1 z 2 Następna strona