Skocz do zawartości

Contrast

Stały użytkownik
  • Postów

    58
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez Contrast

  1. Poczekajcie. No i mamy tablice z indeksami od zera do en , nie można jej przesunąć o ka w lewo bo pierwszy indeks byłby równy zero minus ka a ostatni en minus ka. Widzieliście tablicę z ujemnymi indeksami? Ja proponuje tu warunek: Przesuwać wartości od jakiegoś miejsca (od kturegoś indeksu) na przykład igrek wiekszego od zera i mniejszego od en , przy podawaniu o ile przesunąć tablicę trzeba sprawdzić czy zadana wartośc przesunięcia te jest mniejsza równa igrek , gdy tak można kontynułować. Albo zrobić to tak że zadajemy o ile w lewo np pieć , pięć pierwszych elementów ciągu zapisujemy w pomocniczej tablicy temp_tab, resztę zapisujemy w innej tablicy (zaczynając od indeksu zero a kończąc na indeksie en minus pięć) (przydzielamy jej tak samo pamięć jak naszej tablicy wyjściowej czyli takim samym mallokiem) , póżniej zaczynając od indeksu en minus pięć wpisujemy do naszej pomocniczej tablicy zawartośc tablicy temp_tab , wypisujemy zawartośc naszej pomocniczej tablicy na ekran i co robimy? i sie cieszymy bo działa i po wszystkim Bedziesz mogł o 100 przesunąć w lewo gdy tylko sam do tego dojdziesz jak , podpowiedz: sto podziel przez swoj rozmiar tablicy (można pobawić się w przesunięcie całej tablicy w pamięci ale to chyba nie o to chodzi) int main(){int n,i,j,k;int z =0; printf("Z ilu n elementow ma skladac sie ciag liczb (n>0): "); scanf("%d",&n);for(i=0;i<n;i++) tablica[i]=i; printf("\n\nCiag wyglada nastepujaco:\n\n");int *tablica = (int*)malloc((unsigned)n*sizeof(int));i=0;for (i=0;i<n;j++) printf("%d, ",tablica[i]); printf("\n\n\n");i=0;for(;;)/*pętla będzie sie kręcić aż poniższy warunek w ifie nie zostanie spełniony*/{printf("O ile pozycji ma nastapic przesuniecie cykliczne elementow ciagu w lewo ()); scanf("%d",&k);if(k<n)break;else { printf("nieopoprawny rozmiar przesunięcia sproboj jeszcze raz");continue; } }getch(); /*tutaj zrealizujemy przesunięcie cykliczne w lewo*/int *tab_pom = (int*)malloc((unsigned)n*sizeof(int));int *tab_temp = (int*)malloc((unsigned)k*sizeof(int));for(i=0;i<=k;i++)tab_temp[i] = tablica[i];k++;i=k;for(i=k;i<=n;i++){tab_pom[z]=tablica[i];z++;}i=k;for(i=k;i<=n;i++)tab_pom[i]=tab_temp[i];for(i=0;i<=n;i++){printf(%d,tab_pom[i]);return 0;}myśle ze powinno zadziałac ale moge sie mylić. :mur:
  2. Tablice Ale w czym?? Jaki język?? Różnie można do tego podejść np w Javie to będzie bardzo proste. Sprecyzuj co ma dokładnie robić ten program ?"przesunięcie cykliczne" Kiedy ma nastąpić? Jak zajdą jakieś szczegulne warunki? Czy poprostu jak tablica się przepełni , to wtedy następny element zapisywany jest na pozycji en minus ka , a reszta przesuwa się o jeden w stronę en?
  3. Napisaliście: GetTextBuf() oczekuje 2 parametrow: 1 z nich bedacy tablica charow do ktorej zostanie skopiowana zawartosc bufora obiektu 2 dlugoscia jaka ma kopiowac Robiąc : field->GetTextBuf( expression , size ); gdy size jest większe od expression zgłoszony bedzie bład pamięci bo zapełni sie expression. Zostanie podjęta pruba zapisania Size minus ilość elementów w expression znaków z bufora obiektu do pelnego juz bufora expression , co da bląd . Ps a jakbyś mogl dodac do postu komunikat jaki wywala kompilator to tez by ulatwilo.
  4. Panowie czy String w C++ jest tablicą Charów i można sie odwoływać do jego elementów poprzez indeksy? Wydaje mi sie że nie. Ja bym utwożył tak: int lenth = ....;char[] bufor= new char[lenth];char * ptr = &bufor[0]; //wskazuje na pierwszy element bufora; for(int i = 0; i <lenth; i++){/*ptr = "";//wstawienie pustego znaku do bufor[i]ptr ++;//inkrementacja wskażnika;//jeśli bufor zajmuje jednolity przedział adresów w pamieci(jak to jest w c++?)}
  5. char * expression; To jest String? (przejżyj dokładnie swojego i mojego posta)
  6. Nie znam sie na Borlandzie ale char * expression; To jest wskażnik do chara odwolanie expression jest tu nie poprawne.(gdyż wskaznik nie jest tablicą) jego wartością jest lidzba cheksadecymalna (adres komurki pamieci) tak samo strlen( expression ); da nie poprawny wynik(da dlugo). Spróbuj char * expression = &bufor; i w pętli for(...;...;...) możesz inkrementować adres wskażnika przez expression++;
  7. Jestem w grupie Tweak.pl Chce założyc małą grupę , czy może grupa dołączyć do grupy? ..Jak To zrobić?
  8. Nie wyswietlają mi sie statystyki Teamu ani statystyki moje , prosze o pomoc
×
×
  • Dodaj nową pozycję...