Trzy programy w C++
-
- Użytkownik
- Posty: 350
- Rejestracja: 9 maja 2008, o 18:18
- Płeć: Kobieta
- Podziękował: 70 razy
- Pomógł: 20 razy
Trzy programy w C++
1. Wczytaj łańcuch znaków. Policz duże litery, małe oraz spacje.
2. Wczytaj łańcuch znaków. Zamień duże litery na małe i odwrotnie.
3. Wczytaj łańcuch znaków. Policz ile razy w tym łańcuchu występuje trójka ”abc”.
Będę wdzięczna za każde rozwiązanie.
2. Wczytaj łańcuch znaków. Zamień duże litery na małe i odwrotnie.
3. Wczytaj łańcuch znaków. Policz ile razy w tym łańcuchu występuje trójka ”abc”.
Będę wdzięczna za każde rozwiązanie.
-
- Użytkownik
- Posty: 174
- Rejestracja: 15 sty 2009, o 17:28
- Płeć: Mężczyzna
- Podziękował: 40 razy
- Pomógł: 12 razy
Trzy programy w C++
Siema mam na razie 3:
edit:
Co do 2 to nie wiem dokładnie czy ma być tak, że wczytuje i duże i małe litery czy tylko któreś z nich. Jeżeli o to 2 chodzi to mam
Jeżeli chodzi o te tablice z literami możesz je modyfikować wg własnych potrzeb
edit:
No jest już i 1 zadanie:
Ukryta treść:
Co do 2 to nie wiem dokładnie czy ma być tak, że wczytuje i duże i małe litery czy tylko któreś z nich. Jeżeli o to 2 chodzi to mam
Ukryta treść:
edit:
No jest już i 1 zadanie:
Ukryta treść:
-
- Użytkownik
- Posty: 350
- Rejestracja: 9 maja 2008, o 18:18
- Płeć: Kobieta
- Podziękował: 70 razy
- Pomógł: 20 razy
Trzy programy w C++
Ojeju dzięki bardzo Jakbym mogła to bym Ci dała za to 10 plusików A w tym drugim chodziło oto, żeby małe zmienić na duże a duże na małe, ale mam nadzieje, że z tym już sobie poradzę
Jeszcze raz dzięki :*
Jeszcze raz dzięki :*
-
- Użytkownik
- Posty: 2000
- Rejestracja: 19 lut 2008, o 17:35
- Płeć: Mężczyzna
- Lokalizacja: Stare Pole/Kraków
- Podziękował: 60 razy
- Pomógł: 202 razy
Trzy programy w C++
te programy mozna zrobic szybciej z uzyciem funkcji toupper() i tolower(), ktore zamieniaja podaną litere na odp: dużą i małą. np czy litera x jest duża sprawdzamy tak:
Kod: Zaznacz cały
if(x==toupper(x)){}
-
- Użytkownik
- Posty: 941
- Rejestracja: 17 gru 2007, o 21:48
- Płeć: Mężczyzna
- Lokalizacja: Kingdom Hearts
- Podziękował: 6 razy
- Pomógł: 222 razy
Trzy programy w C++
Program 3 zły. Pow wpisaniu np. "abccc", program powinien wypisać 1, a wypisuje 3. Poprawny wygląda tak:
Kod: Zaznacz cały
#include <iostream>
using namespace std;
int main()
{
string text;
int ile=0,i=0;
getline(cin,text);
while(i<text.size())
{
int k=text.find("abc",i);
if(k<0) break;
else ile++;
i=k+1;
}
printf("%d
",ile);
return 0;
}
- kadiii
- Użytkownik
- Posty: 642
- Rejestracja: 20 gru 2005, o 21:04
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Pomógł: 130 razy
Trzy programy w C++
Spammer, twój program nie wiadomo w ogóle jakim cudem sie kompiluje - to tylko dzięki wyrozumiałości kompilatora.
to nie jest deklaracja tablicy liter tylko deklaracja jednego chara ,któremu akurat z powodów implementacyjnych przypisuje kompilator ostatnią literę łańcucha, czyli c. Tablicę deklarujemy tak:
Oczywiście nie mógłbyś wtedy użyć metody rozwiązania , której użyłeś.
Kolega matshadow użył w swoim rozwiązaniu zgrabnej i bardzo użytecznej funkcji find. Oczywiście jeżeli chodziło w tym zadaniu aby takowych nie używać to można by przy takim krótkim wzorcu - abc użyć takiego algorytmu: przeszukuj kolejne litery łańcucha od 3, jeśli znajdziesz c, to sprawdź, czy poprzednia jest b, i jeśli tak, to sprawdź, czy poprzednia to a. Jeśli tak, to zwiększ ile o 1. Kontynuuj aż do końca łańcucha.
Jesli chciałabyś (tu kieruje słowa do autorki) podejść do zadania metodycznie to mogłabyś użyć jednego z algorytmów do wyszukiwania wzorca K-M-P, Boyera- Moore'a, Rabina-Karpa(każdy o różnej specyfice) czy jeszcze jakiś inny. Oczywiście to tylko jesli chciałabys to wykonać pożądnie(co nie wydaje sie akurat celem tego zadania). Zawsze jednak warto dowiedzieć się o czymś innym.
Pozdrawiam
Kod: Zaznacz cały
char trojka = {'abc'}; //tablica liter
Kod: Zaznacz cały
char trojka[]={"abc"}
Kolega matshadow użył w swoim rozwiązaniu zgrabnej i bardzo użytecznej funkcji find. Oczywiście jeżeli chodziło w tym zadaniu aby takowych nie używać to można by przy takim krótkim wzorcu - abc użyć takiego algorytmu: przeszukuj kolejne litery łańcucha od 3, jeśli znajdziesz c, to sprawdź, czy poprzednia jest b, i jeśli tak, to sprawdź, czy poprzednia to a. Jeśli tak, to zwiększ ile o 1. Kontynuuj aż do końca łańcucha.
Jesli chciałabyś (tu kieruje słowa do autorki) podejść do zadania metodycznie to mogłabyś użyć jednego z algorytmów do wyszukiwania wzorca K-M-P, Boyera- Moore'a, Rabina-Karpa(każdy o różnej specyfice) czy jeszcze jakiś inny. Oczywiście to tylko jesli chciałabys to wykonać pożądnie(co nie wydaje sie akurat celem tego zadania). Zawsze jednak warto dowiedzieć się o czymś innym.
Pozdrawiam
-
- Użytkownik
- Posty: 350
- Rejestracja: 9 maja 2008, o 18:18
- Płeć: Kobieta
- Podziękował: 70 razy
- Pomógł: 20 razy
Trzy programy w C++
matshadow, dzięki za poprawny program
A czy ktoś mogłby jeszcze zrobić taki program:
Wczytaj łańcuch znaków. Wyświetl go od końca do początku.
Każda pomoc mile widziana
A czy ktoś mogłby jeszcze zrobić taki program:
Wczytaj łańcuch znaków. Wyświetl go od końca do początku.
Każda pomoc mile widziana
- kadiii
- Użytkownik
- Posty: 642
- Rejestracja: 20 gru 2005, o 21:04
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Pomógł: 130 razy
Trzy programy w C++
Kod: Zaznacz cały
#include <iostream>
using namespace std;
main()
{
string lancuch;
int i;
getline(cin,lancuch);
for(i=0;i<lancuch.length();i++)
{
if((lancuch[i]>='a')&&(lancuch[i]<='z'))
lancuch[i]-=32;
else if((lancuch[i]>='A')&&(lancuch[i]<='Z'))
lancuch[i]+=32;
//dla reszty nie robimy nic
}
cout<<lancuch<<endl;
return 0;
}
a to do wypisania odwrotnie
Kod: Zaznacz cały
#include <iostream>
using namespace std;
main()
{
string lancuch;
int i;
getline(cin,lancuch);
for(i=lancuch.length();i>=0;i--)
cout<<lancuch[i];
return 0;
}
-
- Użytkownik
- Posty: 941
- Rejestracja: 17 gru 2007, o 21:48
- Płeć: Mężczyzna
- Lokalizacja: Kingdom Hearts
- Podziękował: 6 razy
- Pomógł: 222 razy
Trzy programy w C++
Kod: Zaznacz cały
#include<iostream>
#include<algorithm>
using namespace std;
main()
{
string a;
getline(cin,a);
reverse(a.begin(),a.end());
cout<<a<<endl;
return(0);
}
-
- Użytkownik
- Posty: 350
- Rejestracja: 9 maja 2008, o 18:18
- Płeć: Kobieta
- Podziękował: 70 razy
- Pomógł: 20 razy
Trzy programy w C++
Wcześniej zamiast programu wyświetlającego łańcuch od końca do początku, było zadanie, żeby zamienić wszystkie litery a w łańcuchu na z. Wykasowałam je bo sama sobie z nim poradziłam, ale teraz widze, że kadii masz inaczej. Ja napisałam to tak:
Ja się na programowaniu nie znam, niby ten program działa, ale czy on jest "ładny", że tak powiem?
Kod: Zaznacz cały
#include <iostream>
#include <string>
using namespace std;
int main()
{
string text ;
getline(cin,text);
for(int i = 0;i<text.length();i++)
{
if(text[i]==97)
{
text[i] = 122;
}
} cout << text;
cout << "
";
system("pause");
return 0;
}
-
- Użytkownik
- Posty: 941
- Rejestracja: 17 gru 2007, o 21:48
- Płeć: Mężczyzna
- Lokalizacja: Kingdom Hearts
- Podziękował: 6 razy
- Pomógł: 222 razy
Trzy programy w C++
korzystasz z kodu ascii każdego znaku. Jak ci przyjdzie zamienić l na b to mogą być kłopoty bez znajomości kodów ascii tych liter. Dlatego imho uniwersalniej jest zapisać:
if(text=='a') text='z';
if(text=='a') text='z';