Algorytm

camil_86
Użytkownik
Użytkownik
Posty: 12
Rejestracja: 23 mar 2006, o 23:44
Płeć: Mężczyzna
Lokalizacja: żuromin

Algorytm

Post autor: camil_86 »

Mam problem z napisaniem algorytmu do programu zamieniajacego male znaki na duze i na odwrot.
Program mam napisany w TP ale nie mam kompletnie pojecia jak napisac algorytm do tego programu.

Kod: Zaznacz cały

program Znaki;
uses crt; 
var
i:integer; 
tekst:string; 

function DownCase(litera:char):char;
  begin
  DownCase:=chr(ord(litera)+32);
  end;
begin
  clrscr;
  readln(tekst);
  for i:=1 to length(tekst) do
    begin
      if (ord(tekst[i])>=65) and (ord(tekst[i])<=90) then
      write(downcase(tekst[i]))
      else write(upcase(tekst[i]));
    end;
  readln;
end. 

Z gory dzieki za pomoc.
Ostatnio zmieniony 3 maja 2006, o 16:11 przez camil_86, łącznie zmieniany 1 raz.
Awatar użytkownika
pOwer
Użytkownik
Użytkownik
Posty: 47
Rejestracja: 9 kwie 2006, o 18:56
Płeć: Mężczyzna
Lokalizacja: Bochnia
Podziękował: 2 razy

Algorytm

Post autor: pOwer »

A nie prościej wypisać jakie te małe litery ma zamieniać?
np, i,a itd. Mam pomysł jak to zrobić ale w innym języku prg. Kod pisz w znacznikach [*code][*/code]
Awatar użytkownika
Paul0s
Użytkownik
Użytkownik
Posty: 68
Rejestracja: 18 kwie 2006, o 17:54
Płeć: Mężczyzna
Lokalizacja: 3 - City
Podziękował: 15 razy

Algorytm

Post autor: Paul0s »

Jesli cie to satysfakcjonuje to moge ci napisac to w jezyku Visuala Basiva NET . Czekam na odpowiedz
camil_86
Użytkownik
Użytkownik
Posty: 12
Rejestracja: 23 mar 2006, o 23:44
Płeć: Mężczyzna
Lokalizacja: żuromin

Algorytm

Post autor: camil_86 »

Program jest napisany dobrze tylko potrzebny mi jest do tego algorytm, a ja zawsze mialem problemy z algorytmami.
szopa
Użytkownik
Użytkownik
Posty: 24
Rejestracja: 1 maja 2006, o 17:12
Płeć: Mężczyzna
Lokalizacja: Zambrów

Algorytm

Post autor: szopa »

napisze tak troche po swojemu, ale mam nadzieje ze zalapiesz o co chodzi

1.pobranie tekstu
2.program pobiera kolejny litery ze stringa i sprawdza ich kod ascii
3.jesli kod litery miesci sie w przedziale ('a'=65 az do 'z'=90) to uzywa funkcji,ktora
zwiekszy ten kod o 32(od 97 zaczynaja sie duze litery) w przeciwnym wypadku zmniejsza ten kod o 32 i litere, ktora odpowiada zmienionemu kodowi wypisuje

mam nadzieje ze o to ci chodzilo, jesli nie to sorry
John Nash
Użytkownik
Użytkownik
Posty: 15
Rejestracja: 25 kwie 2006, o 14:49
Płeć: Mężczyzna
Lokalizacja: Princeton
Podziękował: 3 razy
Pomógł: 1 raz

Algorytm

Post autor: John Nash »

szopa pisze:w przeciwnym wypadku zmniejsza ten kod o 32 i litere, ktora odpowiada zmienionemu kodowi wypisuje
Pozwole sobie na mala korekte: w przeciwnym wypadku JESLI kod ascii miesci sie w przedziale to zmniejszamy go o 32. Bo gdyby nie bylo tego warunku algorytm niszczylby wszystkie dane z poza przedzialu \(\displaystyle{ \cup}\)
szopa
Użytkownik
Użytkownik
Posty: 24
Rejestracja: 1 maja 2006, o 17:12
Płeć: Mężczyzna
Lokalizacja: Zambrów

Algorytm

Post autor: szopa »

no tak, w sumie sluszne spostrzezenie
John Nash
Użytkownik
Użytkownik
Posty: 15
Rejestracja: 25 kwie 2006, o 14:49
Płeć: Mężczyzna
Lokalizacja: Princeton
Podziękował: 3 razy
Pomógł: 1 raz

Algorytm

Post autor: John Nash »

Nie wiem, jak jest w Pascalu - po prostu nie pamietam, bo daaawno nie mialem do czynienia z tym jezykiem, ale jak bys w C++ nie umiescil tej instrukcji ani nie dal funkcji sprawdzajacej dlugosc lancucha rowniez znacznik NULL zostalby zmodyfikowany o -32, co w tym przypadku oznacza zmiane z kodu 0 na 224 (zakres typu char 0-255), a to bylaby KATASTROFA!
camil_86
Użytkownik
Użytkownik
Posty: 12
Rejestracja: 23 mar 2006, o 23:44
Płeć: Mężczyzna
Lokalizacja: żuromin

Algorytm

Post autor: camil_86 »

Juz chyba wiem jak to zrobic.
Dzieki za blyskawiczna pomoc
W pascalu jest funkcja upcase ktora zamienia male litery na wielkie. Wiec tu nic wiecej nie potrzeba.
Algorytm juz mam praktycznie skonczony
ODPOWIEDZ