Re: Programy w C - pomocy!

Autor: Mikolaj (mikolaj.milewicz_at_softax.com.pl)
Data: Tue 05 Jan 1999 - 14:19:31 MET


Tomasz Rońda wrote in message <3691259c.0_at_news.vogel.pl>...
>Cześć!
>Mam ogromną prośbę do osób które znają się na programowaniu w C.
>Otóż muszę napisać parę programów, aby zaliczyć semestr. Problem w tym, że
>nie dość że nie za bardzo znam się na C, to jeszcze zwaliły mi się na głowę
>inne terminy [egzamin z matmy i ekonomii ;-(( ]
>Dlatego też, jeśli ktoś może mi napisać odpowiedź do któregokolwiek z
>poniższych pytań, lub wskazać miejsce w sieci gdzie będe mógł coś znaleźć,
>będę BARDZO zoobowiązany. Mam wrażenie, że pytania te nie są zbyt trudne,
>nawet dla średniozaawansowanych programistów. Oto one:
>
>1. Zrealizuj program znajdujący największy wspólny podzielnik dwu liczb
>całkowitych bez znaku.
>
np:

void main(void)
{
    int a=1234,b=3456; /* dane wejściowe */
    int pom;

    if(b>a)
    {
        pom=a;
        a=b;
        b=pom;
    }
    for(pom=b-a;pom!=a;)
    {
        if(pom>a)
            b=pom;
        else
        {
            b=a;
            a=pom;
        }
    }
} /* pom zawiera NWD */

+jakieś wypisywanie

>2. Opisz mechanizmy przesyłania danych pomiędzy funkcjami.
dane można przekazywać:
poprzez parametr przekazywany przez wartość - zmina wartośći w funkcji nie
powoduję zmiany wartości zmiennaj będącej parametrem w wywołaniu danej
funkcji - tylko do przesłania danych do funkcji
poprzez parametr przekazywany przez adres/referencję - zmiana wertości
zmiennej w funkcji zmienia wartość zmiennej, kttóra jest parametrem przy
wywołaniu - umożliwia przekaznie danych z funkcji
poprzez zmienną globalną
poprzez wynik - przekaznie danych z funkcji na zewnątrz

>
>3. Napisz funkcję która zamienia ciąg znaków '0', '1', (poprzedzony spacją,
>'+' lub '-' ) na odpowiadającą jej liczbę w kodzie U2.

wynik ma być stringiem zawierającym '0' i '1' i przedstawiającym liczbe w
U2 - czy liczbą w U2, czyli de facto jakimś int'em lub long int'em?

>
>4. Zrealizuj program szukający największej liczby w zbiorze N liczb
>rzeczywistych

double max=tab[0];
for(i=0;i<N;++i)
    if(tab[i]>max)
        max=tab[i];

>
>5. Zrealizuj funkcję która analizując podany ciąg znaków wypisuje na
ekranie
>ile w nim jest:
>- dużych liter
>- małych liter
>- cyfr
>- znaków ';', '.', ':'

void wypisz(char *buf)
{
    int duze=0,male=0,cyfry=0;znaki=0;

    while(*buf)
        if(*buf >= 'a' && *buf <= 'z')
            ++male;
        else if(*buf >= 'A' && *buf <= 'Z')
            ++duze;
        else if(*buf >= '0' && *buf <= '9')
            ++cyfry;
        else if(*buf == ';' || *buf == '.' || *buf==':')
            ++znak;

    printf("duze - %d\nmale - %d\n cyfry - %d\nznaki -
%d\n",duze,male,cyfry,znaki);

Życzę powodzenia

M



To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 18:04:01 MET DST