matematykaszkolna.pl
c++ erase Metis: C++ Czemu taki program wyrzuca błąd: #include "stdafx.h" #include <iostream> #include <conio.h> #include <cctype> #include <string> using namespace std; int x = 0; string text; int main() { cout << "Wpisz swoj tekst: " << endl; getline(cin, text); x = text.length(); for (int i = 0; i < x; i++) { if (isdigit(text.at(i))) { text.erase(i); } } cout << text; getch(); }
18 sty 19:49
KKrzysiek: Napisałbyś jaki błąd i w której linijce
18 sty 19:50
Metis: to nie błąd kompliatora.
18 sty 19:51
wmboczek: Ale co się sypie? Próbowałeś drukować wyniki pośrednie? Jakie argumenty ma funkcja text.at? Może text.at(0) nie istnieje?
18 sty 19:59
Metis: Sypie sie gdy wpisze tekst z liczbami, to jest nie usuwa i wywala błąd pamięci
18 sty 20:00
wmboczek: usunięcie zmienia długość text a w pętli tego nie uwzględniono?
18 sty 20:03
Metis: racjaemotka Jak rozwiązac ten problem?
18 sty 20:07
Metis: Teraz rozumiem dlaczego w innym kodzie dodane jest: string::iterator y; y = tekst.begin() + i; emotka
18 sty 20:08
wmboczek: wewnątrz if daj x=x−1
18 sty 20:09
wmboczek: chyba jeszcze i=i−1 będzie konieczne by nie przeskoczyć znaków
18 sty 20:12
Metis: Dzięki za znalezienie błedu emotka Za chwilę sprawdzę działanie tego programu
18 sty 20:12
Metis: I teraz rozumiem dlaczego Dziadek radził kopiowanie emotka To rozwiązałoby też problem.
18 sty 20:13
Metis: Kolejny problem mam tutaj: Chce by liczby zapisywane były na bięzaco w tabeli, ale to od uzytkownika zalezy ile tych liczb wpisze, wiec nie moge zadeklarowac stałego rozmiaru tablicy Czegoś mi brakuje Program wykonuje się, ale nei wchodzi do pętli for #include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; int liczba, *tab; char znak; int main() { while (znak != 'T') { for (int i = 0; i > 0; i++) { cout << "Podaj " << i+1 << " liczbe:" << endl; cin >> tab[i]; } cout << "Czy chcesz zakonczyc dzialanie programu?(T/N)" << endl; znak = getch(); } getch(); }
18 sty 20:28
Metis: Mogę to zrobić też tak: #include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; int liczba, *tab, x; int main() { cout << "Ile liczb chcesz wprowadzic: " << endl; cin >> x; tab = new int[x]; for (int i = 0; i <x; i++) { cout << "Podaj " << i+1 << " liczbe:" << endl; cin >> tab[i]; } getch(); }
18 sty 20:32
Jack: Dlaczego tab jest wskaznikirm na typ int? W sensie czemu wskaźnik
18 sty 20:33
Metis: Deklaruje rozmiar tablicy w zaleznosci od tego ile liczb chce wpisac uzytkownik.
18 sty 20:35
Jack: Chociaz nie, czekaj, glupoty gadam
18 sty 20:36
5-latek: Metis emotka Miales napisac jak Ci poszlo kolokwium . Zagladam na poczte i nic emotka
18 sty 20:40
Jack: Moze w jednej linijce to zrobic int *tab = new int[x]; Albo brakuje delete [] tab na koncu; Albo lepiej sie juz nie wypowiadam xd
18 sty 20:40
jc: Metis, taka drobna uwaga: int liczba, *tab, x; lepiej umieścić wewnątrz funkcji main().
18 sty 20:45
Metis: Ten drugi działa Jack, ale dzięki , zapomniałem o delete emotka Cześć Krzyśku Praca wre, przepraszam zapomniałem emotka Zdobyłem z niego połowe punktów. W liczeniu stycznej do funkcji:
 ex−2 
f(x)=

 ex+5 
na kartce przepisałem ex−5 i całe zadanie policzyłem dobrze dla tego wzoru − mając 1 strone obliczeń wiecej(pochodna). Profesor dał mi 2 pkt, zamiast 5, ale doceniam te 2, bo zmieniłem przeciez cały wzór funkcji. Straciłem za dużo czasu na to zadanie przez złozonosc obliczeń, i 4) nie ruszyłem w ogóle. A pierwsze dwa zadania miałem dobrze emotka Z kolejnego musze uzyskac kolejną połowe i nie muszę w teorii podchodzić do egzaminu w sesji.
18 sty 20:47
Metis: Ok, jc emotka
18 sty 20:48
5-latek: Dobrze emotka
18 sty 20:49
Metis: Mam takie zadanie: Podać sposoby przekazywania wartości do funkcji podać ich podobieństwa i różnice. Czy taka odpowiedź będzie prawidłowa? : W jezyku programania c++ wyróżniamy 3 sposoby przekazywania wartości do funkcji: 1) Najpopularniejsza − przez wartość 2) przez wskaźnik 3) przez referencję W przypadku 1) i 2) zmienna jest kopiowana. W przypadku 3) już tak nie jest. Kopiowanie danych do funkcji nie jest żądaną metodą ( zmienne mogą być duże i czas wykonywania programu może się wydłużyć)
18 sty 20:53
Metis: Co mogę jeszcze dodac?
18 sty 20:53
jc: Właściwie sposoby (1) i (2) różnią się tylko notacją. W jednym i drugim przypadku funkcja dowiaduje się, gdzie znajduje się zmienna i w ten czy inny sposób kopiowany jest adres zmiennej.
18 sty 21:02
KKrzysiek: @Metis, ja z obu dostałem 100 , ale i tak muszę podejść XD. Co za ironia.
18 sty 21:03
jc: Miało być (2) i (3), a nie tak, jak napisałem (1) i (2).
18 sty 21:03
Metis: U mnie też tak jest w wielu przypadkach. Zależy od wykładowcy i tego jaki sposób zaliczenia przedstawi. Ja wybrałem sobie tych pro− studenckich emotka
18 sty 21:04
Metis: Dzięki jc emotka Taka odpowiedź będzie wystarczająca?
18 sty 21:05
KKrzysiek: @Metis, też nie bardzo było w czym wybierać
18 sty 21:07
jc: Czy ja wiem? Informatycy mogą myśleć inaczej, choć Ci, których znam, powiedzieliby pewnie to samo.
18 sty 21:11
Metis: Dzięki emotka
18 sty 22:45