Treść zadania

AMKolacz

Zaproponować algorytm, który umożliwi pozyskanie informacji dotyczącej
długości tekstu, przekazanego do funkcji jako parametr tablicowy text,
przy czym należy wiedzieć, że w bibliotece standardowej języka C każdy
napis, tekst, czy inaczej ciąg znaków5
, zakończony jest specjalnym markerem, również znakiem, w postaci ’\\0’. Oczywiście pożądaną wielkość
można ustalić przez wywołanie funkcji bibliotecznej z modułu string.h,
strlen(text), ale w treści zadania idzie o implementację własnej koncepcji rozwiązania wskazanego problemu, a zatem niech funkcja ma postać
(listing 5):
5W językach wyższego poziomu w tym celu wykorzystuje się typ string, który jest złożonym typem danych - klasą.
5
1 #include <s t d i o . h>
2 #def ine LENGTH 100
3
4 int checkTextLength ( char∗ t e x t )
5 {
6 // t u n a p i s z t r e s c c i a l a f u n k c j i
7 }
8
9 int main ( )
10 {
11 char t e x t [LENGTH] = ” In f o rm a tyk a uczy
al g o r y tmi c z n e g o ”
12 ” i komputacy jnego m y sleni a ” ;
13
14 p r i n t f ( ”Badany t e k s t ma dl u g o s c %d” ,
checkTextLength ( t e x t ) ) ;
15 return 0 ;
16 }
Listing 5: Prototyp funkcji checkTextLength() i jej wywołanie

Zgłoś nadużycie

Komentarze do zadania

Zaloguj się lub załóź konto aby dodać komentarz.

Rozwiąż to zadanie i zarób nawet 14 punktów. 2 za rozwiązanie zadania, 10 gdy Twoja odpowiedź zostanie uznana jako najlepsza.

Rozwiązania

  • antekL1

    // Na przykład coś takiego, sprawdzającego, czy ostatni bajt w stringu = 0
    // UWAGA: Nie sprawdzałem tego w kompilatorze, piszę "z pamięci"
    // Wyrzuć moje nadmiarowe komentarze, proszę !

    //=============================================
    // Funkcja oblicza długość stringu "napis". i zwraca ją
    // Parametr napis ma być przekazywany jako wskaźnik.
    // Np w Twoim przykładzie podajesz nazwę "text"
    // bo "text" jest tablicą, więc jej nazwa jest wskaźnikiem
    // tak jak w Twoim przykładzie.
    // Zauważ, że dla pustego stringu pętla "while" się nie wykona ani razu
    // i funkcja poprawnie zwróci zero :)

    int checkTextLength ( char *napis )
    {
    int dlugosc_tekstu; // to co liczymy i zwracamy

    dlugosc_tekstu = 0

    // Dopóki kolejny bajt napisu nie jest zerem (co świadczy o końcu napisu)
    // dodawaj 1 do licznika długości
    // i zwiększ jednocześnie indeks w tablicy o 1 (dlatego jest ++ na końcu)

    while ( napis [ dlugosc_tekstu ] != 0) dlugosc_tekstu++;

    // Wreszcie mamy bajt = 0
    return dlugosc_tekstu;
    } // koniec procedury
    // ===================== i to tyle, koniec procedury ============

    PS:
    Procedura ma wadę: jeśli długość tekstu > MAXINT dostaniemy nonsensy.
    Przypominam, że w deklaracji funkcji .. .char *napis ... jest wskaźnik,
    więc coś takiego "napis [ j ]" jest odwołaniem do elementu tablicy.

    W razie pytań albo jak kod się nie kompiluje poprawnie pisz proszę na priv.

Podobne zadania

Weraaa32 1)Wyjaśnij: Źródło informacji i przykłady ty źródło. Pomocyyyy damm najjjj;) Przedmiot: Informatyka / Liceum 1 rozwiązanie autor: Weraaa32 18.9.2010 (17:15)
kaper1994 Algorytm Przedmiot: Informatyka / Liceum 1 rozwiązanie autor: kaper1994 21.9.2010 (16:42)
darus123 wspolczesne zrodla informacji -krotka notatkie potrzebuje Przedmiot: Informatyka / Liceum 1 rozwiązanie autor: darus123 10.10.2010 (23:52)
htheory Narysuj algorytm obliczający silnię wprowadzonej liczby. Przedmiot: Informatyka / Liceum 1 rozwiązanie autor: htheory 12.10.2010 (22:02)
htheory Narysuj algorytm wyświetlający wszystkie liczby pierwsze z przedziału od 1 Przedmiot: Informatyka / Liceum 1 rozwiązanie autor: htheory 12.10.2010 (22:03)

Podobne materiały

Przydatność 80% Pozyskanie energii niekonwencjonalnej

Referat

Przydatność 70% Algorytm huffmana

algorytm huffmana rozpisany dokladnie krok po kroku na przykladzie 6 liter sa rydunki drzew wszystko dokladnie ;)

Przydatność 55% Algorytm zamiany ułamka okresowego na ułamek zwykły.

Każdy ułamek okresowy można zamienić na ułamek zwykły. Oto przykład: 0,(1) -przyjmijmy,że to nasza niewiadoma czyli x 0,(1)=x -rozpisujemy ułamek 0,111...=x -w okresie jest jedna cyfra więc mnożymy razy dziesięć obie strony równania: 0,111...=x /x10 1,111...=10x w tym ułamku przeszkadza na okres więc odejmujemy od niego to co zapisaliśmy na początku:...

Przydatność 65% Co to jest Algorytm i sposoby zapisywania algorytmu.

1. ALGORYTM- uporządkowany sposób postępowania przy rozwiązywaniu problemów z uwzględnieniem opisu danych oraz opisu kolejnych czynników prowadzących do jego rozwiązania w skończonym czasie. 2. Sposoby zapisywania algorytmów: a)słowny -przedstawienie rozwiązania za pomocą słów, b)Lista kroków -przedstawienie algorytmu w kolejnych punktach prowadzących do rozwiązania...

Przydatność 50% Ochrona informacji

Do zaliczenia ćwiczeń wystarczy podanie odpowiedzi na dwa z czterech zadań, dowolnie wybranych przez studenta. Zadania: 1. Podaj 5 innych przykładów spraw rozstrzygniętych przez ETPC, które można interpretować jako dotyczące ochrony danych osobowych ? krótko uzasadnij. ? sprawa w Republice Federalnej Niemiec- Europejska Komisja Praw Człowieka orzekła, że zbieranie i...

0 odpowiada - 0 ogląda - 1 rozwiązań

Dodaj zadanie

Zobacz więcej opcji