Article View: alt.pl.comp.lang.csharp
Article #10179Re: Muszę pomagać synowi
From: Hilarion
Date: Fri, 18 Nov 2005 15:09
Date: Fri, 18 Nov 2005 15:09
75 lines
4237 bytes
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-mailReferences:
<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