
Zax_Na_Max [ Bo Emeryt Znał Karate ]
Informatyka ... C++ zadanko.
Witam witam i o zdrowie pytam.
Chciałbym was dzisiaj poprosić o bardzo dla mnie ważną rzecz. Mianowicie zrobienie zadanka w formie tutorialu. Tak abym mógł je przeanalizować dokładnie i załapać o co tam chodzi i dalej sobie kombinować z nim różne dziwne rzeczy.
Jeśli ktoś byłby tak dobry to prosiłbym bardzo. Tekst tekst tekst... Objaśnienia co robił i dalej.
Zadanko : Napisz program, który w ciągu znaków zamienia litery wielkie na małe i odwrotnie, pozostałe znaki pozostawiając bez zmian. Do tego tabela ASCII (słowiańska).
Jeżeli byłby jakiś chętny to prosiłbym o wsparcie. ;) Stawiam browar. I żeby nie było, że żeruje. TO nie jest praca domowa czy coś tam. Potrzebuje tego dla siebie. Ale to bardzo bardzo potrzebuje. Dziękuje z góry !
Edit: Język C++ a program, na którym pracuje to DevC++

Regis [ ]
Godzine niezbyt szczesliwa wybrales na zadania wymagajace myslenia :D
Ale moge podpowiedziec, zanim ktos nie napisze calosci:
male litery maja kody ascii od 97 do 122
wielkie od 65 do 90
Poniewaz malych i wielkich liter jest tyle samo, to roznica miedzy mala a duza 'wersja' tej samej litery jest stala i wynosi 32. 'A' to 65, po dodaniu 32 dostajesz 97 czyli 'a'
Potrzebujesz wiec tablicy do ktorej zapiszesz znaki - ot, zwykle char tablica[ilestam]
I jak wyglkada algorytm? Jedziesz od poczatku do konca talicy i pobierasz znak rzutujac go na inta (int kod = (int)tablica[X]). Sprawdzasz czy kod odpowiada wielkiej literze (wartosc miedzy 65 a 90) czy malej (97-122). Jesli to pierwsze, to dodajesz 32, a jesli drugie to odejmujesz. No i zapisujesz to do tablicy - np dla pierwszego wariantu: tablica[X] = (char)(kod+32).
A standardowa tablica ascii chyba nie obejmuje polskich znaczkow, co chyba z reszta widac po obrazku ktory zamiesciles.
Zax_Na_Max [ Bo Emeryt Znał Karate ]
Regis --> No już trochę mi świta. Myślałem, że trudniejsze to zadanko :)
Nie mniej jednak chciałbym całość treści. Jacyś chętni? :)
Belm [ Konsul ]
Masz:
#include <iostream>
char male[] = "ęóąśłżźćń";
char duze[] = "ĘÓĄŚŁŻŹĆŃ";
int SzukajWTablicy(char *tablica, char znak)
‹
int i = 0;
while (tablica != NULL)
‹
if (tablica == znak)
return i;
i++;
›;
return -1;
›;
void ZamienZnaki(char *tablica)
‹
int i = 0;
while (tablica != NULL)
‹
if (tablica >= 'a' && tablica <= 'z')
tablica = tablica - 'a' + 'A';
else if (tablica >= 'A' && tablica <= 'Z')
tablica = tablica - 'A' + 'a';
else if (SzukajWTablicy(male, tablica) != -1)
tablica = duze[SzukajWTablicy(male, tablica)];
else if (SzukajWTablicy(duze, tablica) != -1)
tablica = male[SzukajWTablicy(duze, tablica)];
i++;
›;
›;
int main(int argc, char* argv[])
‹
// Przykłądowy ciąg znaków
char robocza_tablica[] = "zxvYGUYUGBBąć朥ĄŹŹ";
char z;
std::cout << "Przed zamiana: " << robocza_tablica << std::endl;
ZamienZnaki(robocza_tablica);
std::cout << "Po zamianie: " << robocza_tablica << std::endl;
std::cin >> z;
return 0;
›;
GOL wyciął ważne znaczki, zaraz Ci prześlę ten program mailem
Zax_Na_Max [ Bo Emeryt Znał Karate ]
Belm --> Dziękuje :* ... Masz piwko.