Dzień dobry,
Jest ktoś może w stanie pomóc mi z zadaniami w załączniku? Będę bardzo zobowiązany :)
Pozdrawiam
Dzień dobry,
Jest ktoś może w stanie pomóc mi z zadaniami w załączniku? Będę bardzo zobowiązany :)
Pozdrawiam
Chętnie pomożemy, w czym masz problem?
Szczerze mówiąc ze wszystkim, programowanie to nie mój konik a muszę to zrobić na studia.
Wiem, że w pierwszym zadaniu trzeba użyć isalpha tylko nie wiem jak zrobić aby program nie rozróżniał wielkości liter (bo całość ma rozróżniać po kodach ASCI?) a potem iterować gdy dany kod ASCI się powtarza.
Drugiego niestety nie wiem jak zacząć w ogóle.
Ok, to rób po kolei. W pierwszym zadaniu, dla każdego wczytanego znaku chcesz zrobić dwie rzeczy:
isalpha()
toupper()
albo tolower()
Na tej podstawie powinieneś być w stanie napisać już całe zadanie, a przynajmniej solidny kawałek kodu - w razie problemów śmiało pytaj.
Kod wrzucaj w tagi ```cpp, np:
```cpp
tutaj_kod();
```
A jak zrobić cin, który czyta dopóki nie wciśniemy ctrl+c?
char c;
while(std::cin >> c) {
// ...
}
albo
for(char c; std::cin >> c;) {
}
Nie wiem niestety dalej, jak mam zapisać w tablicy wpisywane litery?
Na początek utwórz sobie tablicę z 256 elementami, później będziemy to optymalizować:
int counts[256] = {};
akurat to wiedziałem ale jak po napisaniu czegoś nie wcisnę klawisza ENTER i od razu zakończę wpisywanie to nic w tablicy się nie zapisywało więc nie wiedziałem o co chodzi.
#include <iostream>
#include <cctype>
int main()
{
char table[256];
int i = 0;
for(char c; std::cin >> c;)
{
table[0] = tolower(c);
i++;
}
std::cout << i;
}
table[0] = tolower(c);
zapisujesz ciagle do tego samego miejsca. (tam masz zero a powinien byc iterator petli)
fasadin napisał(a):
> table[0] = tolower(c);
> ```
> zapisujesz ciagle do tego samego miejsca. (tam masz zero a powinien byc iterator petli)
Ponadto, chcesz zwiększać policzoną liczbę wystąpień, a nie przypisywać kod znaku. Co chcesz zrobić: zwiększyć wartość n-tej komórki tablicy o jeden, gdzie n jest kodem znaku.
char table['z'-'a'+1]={0};
- tylko tyle potrzebujesz
if(isalpha(c))
- jeżeli to znak
++table[tolower(c)-'a'];
- zwiększamy odpowiedni licznik
mam takie coś pomoże ktoś dalej?
#include <iostream>
#include <cctype>
int main()
{
char table[256];
int i = 0;
for(char c; std::cin >> c;)
{
table[i] = tolower(c);
i++;
}
//std::cout << i;
for(int j=0; j<=i-1; j++)
{
if(isalpha(table[j]))
{
}
}
}
Nie o to chodzi. Może najpierw opisz słowami co chcesz zrobić.
Lebxs napisał(a):
Szczerze mówiąc ze wszystkim, programowanie to nie mój konik a muszę to zrobić na studia.
Wiem, że w pierwszym zadaniu trzeba użyć isalpha tylko nie wiem jak zrobić aby program nie rozróżniał wielkości liter (bo całość ma rozróżniać po kodach ASCI?) a potem iterować gdy dany kod ASCI się powtarza.
Drugiego niestety nie wiem jak zacząć w ogóle.
Dali wam na zaczęcie programowania c++?