• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

przepisywanie tablicy do int. C++

+1 głos
149 wizyt
pytanie zadane 13 marca 2021 w C i C++ przez ViniVici Początkujący (300 p.)

Witam

język C++

Chciałbym przepisać wartości wpisane w tablicy do wartości float. 

Program działa na dwóch wspólnych kartach. Zrobiony topornie, ale dziala. Teraz go ulepszam np: kasuje duplikowany kod. Sa pozostawione po // pozostalosci starego kodu.

Mój problem dotyczy switch (wybor), case 1- chce tam tablice przypisać do konkretnych deklaracji, aby potem można było je podejrzeć z karty 2. Z góry dziękuje za pomoc.

Ps. Jestem początkujący, ale ambitny :)

karta 1)

#include <iostream>
#include <time.h>
#include <cstdlib>
#include <windows.h>
#include <fstream>
#include <algorithm>
#include <string>
#include <conio.h>
#include "lista.h"


//kolekcja void//
void lista_cala();
//kolekcja void//

using namespace std;


//string opakowanie, data, czas;      //stringi do zapisu wprowadzanych danych w pliku

//float towar[31];
float suma=1, srednia;
//float q,w,e,r,t,y,u,i,o,p,a,s,d,f,g,h,j,k,l,z,x,c,v,b,n,m,qq,ww,ee,rr,tt;
//float qqq,www,eee,rrr,ttt,yyy,uuu,iii,ooo,ppp,aaa,sss,ddd,fff,ggg,hhh,jjj,kkk,lll,zzz,xxx,ccc,vvv,bbb,nnn,mmm,qqww,wwee,eerr,rrtt,ttyy;
float wynik, jeden, dwa;
string miesiac, odp, suma_opak, decyzja;
int wybor, dzien, godzina;


int main()
{

    do
    {
    cout << "Program do liczenia sredniej miesiecznej"          << endl;
    cout <<""                                                          << endl;
    cout << "Podaj nazwe miesiaca:"                             << endl;
    cin  >> miesiac;
    cout <<""                                                          << endl;
    if ((miesiac!="styczen")&&(miesiac!="luty")&&(miesiac!="marzec")&&(miesiac!="kwiecien")&&(miesiac!="maj")&&(miesiac!="czerwiec")&&(miesiac!="lipiec")&&(miesiac!="sierpien")&&(miesiac!="wrzesien")&&(miesiac!="pazdziernik")&&(miesiac!="listopad")&&(miesiac!="grudzien"))
    {
        cout <<"Zly miesiac."                                   << endl;
        exit (0);
    }
    cout << "Czy wyswietlic liste wprowadzonych danych?:"             << endl;
    cout << "Tak       Nie"                                       << endl;
    cin  >>decyzja;
    cout << miesiac << endl;
    cout <<""<< endl;

        if ((decyzja=="tak")||(decyzja=="TAK"))
        {
        lista_cala();
        }


    cout <<"Jak chcesz wprowadzac dane:"                                     << endl;
    cout <<""                                                          << endl;
    cout <<""                                                          << endl;
    cout <<"OPAKOWANIA -Kazdy dzien automatycznie pokoleji --> 1"            << endl;
    cout <<""                                                          << endl;
    cout <<""                                                          << endl;
    cout <<"OPAKOWANIA- Mozliwosc wyboru dnia (w tytm poprawki) --> 2"       << endl;
    cout <<""                                                          << endl;
    cout <<""                                                          << endl;
    cout <<"CZAS- Kazdy dzien automatycznie pokoleji --> 3"                  << endl;
    cout <<""                                                          << endl;
    cout <<""                                                          << endl;
    cout <<"CZAS- Mozliwosc wyboru dnia (w tytm poprawki) --> 4"             << endl;
    cin  >>wybor;
    cout <<""                                                          << endl;
    cout <<""                                                          << endl;


                                                    switch (wybor)
    {
        case 1:

            //////////////////////////// TUTAJ ZROBIC NALEZYTE ZMIANY I POPRAWKI DLA DANYCH W TABELI WYSWIETLANYCH I KONCOWYCH WYNIKOW !!!!!!!!!!!!! ////////////////////
                for (int i=0; i<31; i++)
                {
                    cout <<endl<< "Podaj ilosc opakowan dla "<<i+1<< " dnia: ";
                    cin >> towar[i];

                    (   (q=towar[0]),   (w=towar[1]),     (e=towar[2]),     (r=towar[3]),       (t=towar[4]),
                        (y=towar[5]),   (u=towar[6]),     (i=towar[7]),     (o=towar[8]),       (p=towar[9]),
                        (a=towar[10]),  (s=towar[11]),    (d=towar[12]),    (f=towar[13]),      (g=towar[14]),
                        (h=towar[15]),  (j=towar[16]),    (k=towar[17]),    (l=towar[18]),      (z=towar[19]),
                        (x=towar[20]),  (c=towar[21]),    (v=towar[22]),    (b=towar[23]),      (n=towar[24]),
                        (m=towar[25]),  (qq=towar[26]),   (ww=towar[27]),   (ee=towar[28]),     (rr=towar[29]),
                        (tt=towar[30])      );
                    cout << lista_cala;

             //LIMIT KODU 1500//
          

karta 2)

#include <iostream>
#include <time.h>
#include <cstdlib>
#include <windows.h>
#include <fstream>
#include <algorithm>
#include <string>
#include <conio.h>


using namespace std;

float towar[31];
string opakowanie, czas, data;
float q,w,e,r,t,y,u,i,o,p,a,s,d,f,g,h,j,k,l,z,x,c,v,b,n,m,qq,ww,ee,rr,tt;
float qqq,www,eee,rrr,ttt,yyy,uuu,iii,ooo,ppp,aaa,sss,ddd,fff,ggg,hhh,jjj,kkk,lll,zzz,xxx,ccc,vvv,bbb,nnn,mmm,qqww,wwee,eerr,rrtt,ttyy;

void lista_cala ()
{
    cout <<""                                                          << endl;
    cout <<""                                                          << endl;
        cout <<"Dane wprowadzone dotyczace opakowan"                                  << endl;
    cout <<""                                                          << endl;
    cout <<""                                                          << endl;
    cout <<" .01. "<<q <<" .02. "<<w <<" .03. "<<e <<" .04. "<<r<<" .05. "<<t<< endl;
    cout <<""                                                          << endl;
    cout <<" .06. "<<y <<" .07. "<<u <<" .08. "<<i <<" .09. "<<o<<" .10. "<<p<< endl;
    cout <<""                                                           << endl;
    cout <<" .11. "<<a <<" .12. "<<s <<" .13. "<<d <<" .14. "<<f<<" .15. "<<g<< endl;
    cout <<""                                                          << endl;
    cout <<" .16. "<<h <<" .17. "<<j <<" .18. "<<k <<" .19. "<<l             << endl;
    cout <<""                                                          << endl;
    cout <<" .20. "<<z <<" .21. "<<x <<" .22. "<<c <<" .23. "<<v             << endl;
    cout <<""                                                          << endl;
    cout <<" .24. "<<b <<" .25. "<<n <<" .26. "<<m <<" .27. "<<qq            << endl;
    cout <<""                                                          << endl;
    cout <<" .28. "<<ww<<" .29. "<<ee<<" .30. "<<rr<<" .31. "<<tt            << endl;
    cout <<""                                                          << endl;
    cout <<""                                                          << endl;
    cout <<""                                                          << endl;
    cout <<""                                                          << endl;
       
}

 

1
komentarz 13 marca 2021 przez j23 Mędrzec (186,080 p.)

Rozumiem, że termin karta oznacza po prostu plik źródłowy, tak?

cout << lista_cala;

Co to, według Ciebie, miałoby robić?

(   (q=towar[0]),   (w=towar[1]),     (e=towar[2]),     (r=towar[3]),       (t=towar[4]),
                        (y=towar[5]),   (u=towar[6]),     (i=towar[7]),     (o=towar[8]),       (p=towar[9]),
                        (a=towar[10]),  (s=towar[11]),    (d=towar[12]),    (f=towar[13]),      (g=towar[14]),
                        (h=towar[15]),  (j=towar[16]),    (k=towar[17]),    (l=towar[18]),      (z=towar[19]),
                        (x=towar[20]),  (c=towar[21]),    (v=towar[22]),    (b=towar[23]),      (n=towar[24]),
                        (m=towar[25]),  (qq=towar[26]),   (ww=towar[27]),   (ee=towar[28]),     (rr=towar[29]),
                        (tt=towar[30])      )

Po co te nawiasy? Generalnie ten od jest jakoś mało czytelny.

 

Tam, gdzie masz main, daj:

float q,w,e,r,t,y,u,i,o,p,a,s,d,f,g,h,j,k,l,z,x,c,v,b,n,m,qq,ww,ee,rr,tt;
float qqq,www,eee,rrr,ttt,yyy,uuu,iii,ooo,ppp,aaa,sss,ddd,fff,ggg,hhh,jjj,kkk,lll,zzz,xxx,ccc,vvv,bbb,nnn,mmm,qqww,wwee,eerr,rrtt,ttyy;

a tam, gdzie lista_cala:

extern float q,w,e,r,t,y,u,i,o,p,a,s,d,f,g,h,j,k,l,z,x,c,v,b,n,m,qq,ww,ee,rr,tt;
extern float qqq,www,eee,rrr,ttt,yyy,uuu,iii,ooo,ppp,aaa,sss,ddd,fff,ggg,hhh,jjj,kkk,lll,zzz,xxx,ccc,vvv,bbb,nnn,mmm,qqww,wwee,eerr,rrtt,ttyy;

Nazwy zmiennych porażka.

1
komentarz 13 marca 2021 przez wizarddos Pasjonat (20,520 p.)

@ViniVici, w pierwszym kodzie podmień ifa sprawdzającego miesiące na switch'a. 

komentarz 14 marca 2021 przez ViniVici Początkujący (300 p.)

@j23,

1)

Lista cala to void- poprzez to polecenie ma mi pokazac zapisane, podane w programie ilosci. W "karta 2" jest w/w void.

2)

No wlasnie tu mam problem- poniewaz kombinowalem zapisy, w tym zestawie wychodzi "najlepiej"- ale nie dobrze. Przy bodajze podawaniu 7 dnia- wracamy do 2- sadze ze sumuje mi wartosc i++ jako 1+2+3+4 i tak do 31- potem wraca.

3)

Ok, wczesniejszej wymagalo odemnie podanie "porazkowych" zmiennych float na karcie 2- na pierwszej podawal mi blad. Podmienie, sprawdze.

4)

Moze i porazka, ale przy 31 dniach do podawania dla ilosci opakowan i pomiaru czasowego o blad nie jest trudno. Uwierz mi ten kod na poczatku byl toprny²- teraz jest toporny :) ...i dlatego staram sie go ulepszyc, optymalny i czysty. 

Gdybym tej "topornosci" nie widzial to bym tez i rad nie szukal.

pozdrawiam, dziekuje za rade i krytyke.

komentarz 14 marca 2021 przez ViniVici Początkujący (300 p.)
Szczerze- czemu o tym na start nie pomyslalem?!

Nie dość ze kod będzie lepszy, to na dodatek zabezpieczy od niepoprawnych nazwy.

Dzieki wielkie :)
komentarz 14 marca 2021 przez ViniVici Początkujący (300 p.)
edycja 14 marca 2021 przez ViniVici

Zmieniłem nazwy dla zmiennych i program zadzialal jak chcialem:

Wczesniej nie pokazywalo mi dni- jakby ich nie zapisywalo trwale, teraz pod nazwami day1-31.

komentarz 14 marca 2021 przez ViniVici Początkujący (300 p.)

@j23,

Tak- moja "karta" to (jeszcze) w nie wiedzy plik zrodlowy.

 

Dopytam- extern float i float, czy zapis taki daje mozliwosc dowolnego uzywania zmiennych na kilku plikach zrodlowych? 

2
komentarz 14 marca 2021 przez j23 Mędrzec (186,080 p.)

Tak się definiuje zmienne globalne. Raz definiujesz zmienną w jakimś pliku źródłowym (.c/.cpp), a deklarację (extern) dajesz wszędzie tam, gdzie chcesz odwołać się do tej zmiennej.

komentarz 15 marca 2021 przez ViniVici Początkujący (300 p.)
Czyli mogę w jednym pliku wypisać wszystkie deklaracje, a w kolejnych plikach źródłowych podawać te które potrzebuje z dodatkiem extern. OK, dziękuję za kolejną wiedzę.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
7 odpowiedzi 589 wizyt
pytanie zadane 16 sierpnia 2015 w C i C++ przez vanowikv13 Bywalec (2,740 p.)
+4 głosów
5 odpowiedzi 486 wizyt
0 głosów
3 odpowiedzi 8,994 wizyt
pytanie zadane 23 maja 2015 w Java przez robert9620 Stary wyjadacz (11,620 p.)

89,689 zapytań

138,291 odpowiedzi

309,236 komentarzy

59,620 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...