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

Funkcja z uzyciem wskaznikow na poczatek i koniec tablicy.

Object Storage Arubacloud
0 głosów
358 wizyt
pytanie zadane 23 października 2017 w C i C++ przez chucksqll Stary wyjadacz (12,930 p.)

Witam, mam problem nie tyle co z niedziałającym program to tyle z zrozumieniem jak on działa.(dokładniej ze wskaźnikami ogólnie)

Przerabiam książkę Język C++ Szkoła Programowania, jestem obecnie w ćwiczeniach programistycznych rozdziału 7 zadanie 7. Treść:

Zmodyfikuj program z listingu 7.7, zamieniając trzy funkcje obsługujące tablice tak, aby
każda z nich używała dwóch wskaźników określających zakres. Funkcja f i l l _ a r r a y ( ) ,
zamiast zwracać aktualną liczbę elementów, ma zwrócić wskaźnik elementu znajdującego
się za ostatnim wypełnionym elementem. Inne funkcje mają używać tego wskaźnika jako
drugiego parametru pozwalającego wykryć koniec danych. Oto mój kod, prosiłbym bym o wytłumaczenie jak to tam działa zwłaszcza wskaźnik funkcji fill_array(? czy jak to nazwać) oraz ogólną ocenę poprawności, bo robi się coraz trudniej, więc więcej błędów się zdarza.

#include <iostream>

const int Max=5;
using namespace std;

double * fill_array(double * begining, double * end_tab);
void show_array(const double * begining,const double * end_tab);
void revalue(double r, double * begining, double * end_tab);

int main()
{
    double properties[Max];

    double * last_piece=fill_array(properties,properties+Max);
    show_array(properties, last_piece);
    if(properties!=last_piece)
    {
        cout<<"podaj czynnik zmiany wartosci: ";
        double factor;
        while(!(cin>>factor))
        {
            cin.clear();
            while(cin.get()!='\n')
                continue;
            cout<<"niepoprawna wartosc; podaj liczbe: ";

        }
        revalue(factor, properties, last_piece );
        show_array(properties, last_piece);
    }
    cout<<"gotowe"<<endl;
    cin.get();
    cin.get();
    return 0;
}
double * fill_array(double * begining, double * end_tab)
{
    double temp;
    double * pt;
    int i=0;

    for(pt=begining; pt!=end_tab; pt++)
    {
        cout<<"podaj wartosc nr. "<<(i+1)<<": ";
        i++;
        cin>>temp;
        if(!cin)
        {
            cin.clear();
            while(cin.get()!='\n')
                continue;
            cout<<"bledne dane koniec wczytywanaia"<<endl;
            break;
        }
        else if(temp <0)
            break;
        //ar[i]=temp;
        *pt=temp;
    }
    return pt;
}
void show_array(const double * begining,const double * end_tab)
{
    int i=0;
    const double *pt;
    for(pt=begining; pt!=end_tab; pt++)
    {
        cout<<"nieruchomosc nr "<<(i+1)<<": ";
        cout<<*pt<<endl;
        i++;
    }
}
void revalue(double r,double * begining, double * end_tab)
{
    double * pt;
    for(pt=begining; pt!=end_tab; pt++)
    {
        (*pt)*=r;
    }
}

 

komentarz 24 października 2017 przez j23 Mędrzec (194,920 p.)

Oto mój kod, prosiłbym bym o wytłumaczenie jak to tam działa (...)

To jak, napisałeś kod, a teraz pytasz, jak on działa?cool

 

Co do kodu to błędów nie widzę.

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

Podobne pytania

0 głosów
1 odpowiedź 125 wizyt
pytanie zadane 3 kwietnia 2017 w C i C++ przez hacker09 Użytkownik (520 p.)
0 głosów
1 odpowiedź 525 wizyt
0 głosów
2 odpowiedzi 843 wizyt
pytanie zadane 16 marca 2020 w C i C++ przez Hubertius Bywalec (2,970 p.)

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...