🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: alt.pl.comp.lang.csharp
Article #10179

Re: Muszę pomagać synowi

#10179
From: Hilarion
Date: Fri, 18 Nov 2005 15:09
75 lines
4237 bytes
> Potrzebuje w C++ w implementacji Dev-C++, jaka wymaga szkoła mojego syna, wykonać takie czynności
>
> 1 Do zmiennej wstawić konkatenację 2 napisów i liczby typu integer pomiedzy nimi
>  Tak aby w wyniku powstał łańcuch "Ala ma 12 lat"

Jeśli zmienna jest tablicą znaków, to - tak jak wcześniej pisałem -
można to osiągnąć używając funkcji "sprintf", która powinna być dostępna
w jednej z bibliotek standardowych (i tu akurat nie ma zbyt wielkiego
znaczenia czy to Dev-C++ czy MS VC++ czy jeszcze inne bydle).
Jeśli nie jest ściśle określone jaki typ napisowy ma być zastosowany
dla zmiennej wynikowej, to możesz posiłkować się - jak również wcześniej
pisałem - klasami opakowującymi operacje na napisach, np. CString,
które też już chyba jest w standardzie (takim, czy innym, ale na pewno
dostępnym dla Dev-C++).
Wystarczy, że wrzucisz do Google'a tekst "sprintf" czy "CString"
a powinieneś znaleźć całkiem sporo dokumentacji co, jak i dlaczego.


> 2 potrzebuje zadeklarować tablicę
>   OO[12] i w razie potrzeby zmienić jej rozmiar na OO[5] lub
>   OO[20] bez utraty danych

To pierwsze (z 12 elementów do 5) to raczej nie jest osiągalne
bez utraty danych (gdzie zmieścisz nadmiarowe 7 elementów?).
Jak już napisał ASSmodeus w klasycznym C/C++ nie jest możliwa
zmiana rozmiaru tablicy. Możliwe jest natomiast wykonanie
opisanej operacji tak, aby merytoryczny wynik był taki, jak
się prawdopodobnie spodziewasz. Fragment kodu (nie przetestowany)
dla C będzie wyglądał chyba jakoś tak:

int* OO = malloc( sizeof( int ) * 12 );
// teraz można operować na 12 elementach (startowo są w nich śmieci):
OO[0] = 15;
OO[2] = 8;
OO[11] = 9;
OO = realloc( OO, sizeof( int ) * 5 );
// teraz mamy 5 elementów - dane od OO[0] do OO[4] zachowane
OO[4] = 3;
OO = realloc( OO, sizeof( int ) * 20 );
// a teraz 20 - wszystkie dane zachowane, w OO[12] do OO[19]
// są śmieci
OO[19] = 666;
// Pozostaje jeszcze na koniec zwolnić pamięć:
free( OO ); OO = NULL;

Powyższy kod nie zawiera sprawdzeń, czy operacje "malloc" i "realloc"
się udały, a w konsekwencji (w razie niepowodzenia) będzie się
strasznie sypał. Przerobienie go jednak nie powinno stanowić
większego problemu. Wystarczy poczytać o tym co zwraca "malloc"
i "realloc" w razie błędu i uwzględnić to w programie.


> 3
> Czy w dev-C++ sątakie możliwosci jak w C# to znaczy kolekcje i HashTable

I tak i nie. Nie są to klasy takie, jak w .Net Frameworku (nie ma
tych funkcjonalności w samym języku C#), ale są dostępne klasy kolekcyjne
(listy, kolejki itp.) włącznie z tablicami haszującymi.


> Andrzej


> p.s. Jestem jak widać niedorozwiniety, jak mi napisał na priv przytomny
> i spostrzegawczy, znawca charakterów, kolega z tej grupy
> i NIE UMIEM prosciej zapytać. Ponieważ syn ma oddać pracę w poniedziałek,
> to po tym czasi naśmiewanie sie ze mnie traci sens :)

Nie chodzi nawet o prostsze pytanie czy wyrażanie się zgodnie z terminologią
informatyczną, czy znajomość tematu, a przede wszystkim o wyrażanie się
w miarę zgodnie z polską gramatyką. Ten post wyszedł Ci pod tym względem
znacznie lepiej.


Hilarion 
Technical Details
Message-ID: <dlkqp0$jee$1@news.onet.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news2.icm.edu.pl!opal.futuro.pl!news.task.gda.pl!news.onet.pl!not-for-mail
References: <dlkac9$5rb$1@atlantis.news.tpi.pl> <dlkgrf$5e3$1@atlantis.news.tpi.pl> <dlko8m$d0f$1@atlantis.news.tpi.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news2.icm.edu.pl!opal.futuro.pl!news.task.gda.pl!news.onet.pl!not-for-mail
From: "Hilarion" <hilarion@SPAM.op.SMIECI.pl>
Newsgroups: alt.pl.comp.lang.csharp
Subject: Re: Muszę pomagać synowi
Date: Fri, 18 Nov 2005 16:09:20 +0100
Organization: Onet.pl
Lines: 76
Message-ID: <dlkqp0$jee$1@news.onet.pl>
References: <dlkac9$5rb$1@atlantis.news.tpi.pl> <dlkgrf$5e3$1@atlantis.news.tpi.pl> <dlko8m$d0f$1@atlantis.news.tpi.pl>
NNTP-Posting-Host: fw.elfin.pl
Mime-Version: 1.0
X-Trace: news.onet.pl 1132326496 19918 213.25.37.46 (18 Nov 2005 15:08:16 GMT)
X-Complaints-To: usenet@news.onet.pl
NNTP-Posting-Date: Fri, 18 Nov 2005 15:08:16 +0000 (UTC)
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2670
X-Sender: 9KSiimrLScNqWiVTMiVMJQ==
X-Newsreader: Microsoft Outlook Express 6.00.2900.2670
X-Priority: 3
X-MSMail-Priority: Normal
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit