ANSI C 5

ANSI C 5



1 ELEMENTARZ

odpowiedni parametr jako wskaźnik i za jego pomocą pośrednio odwoływać się do tej zmiennej. Wskaźniki opiszemy szczegółowo w rozdz. 5.

Z tablicami jest inaczej. Gdy argumentem wywołania funkcji jest nazwa tablicy, wówczas przekazywaną wartością jest położenie (inaczej adres) początku tablicy; elementy tablicy nie są kopiowane. Przez indeksowanie tej wartości funkcja ma dostęp - a więc i możliwość zmiany - do wartości dowolnego elementu tablicy. Jest to tematem następnego punktu.

1.9


łWInMM


I


Tablice znakowe


Najczęściej używanymi tablicami w języku C są tablice znaków. Aby pokazać sposób korzystania z tych tablic oraz funkcje manipulujące nimi, napiszmy program, który czyta zbiór wierszy i wypisuje najdłuższy. Schemat problemu jest dość prosty:    (

while (istnieje inny wiersz)

if (Jest dłuższy od poprzednio najdłuższego) zachowaj go zachowaj jego długość wypisz najdłuższy wiersz

Ze schematu jasno wynika, że program w naturalny sposób dzieli się na części. W jednej z nich jest czytany nowy wiersz, w innej sprawdza się jego długość, w jeszcze innej zachowuje wiersz, reszta zaś steruje całym procesem.

Problem dał się ładnie podzielić na zadania, dobrze byłoby więc napisać prograiD w ten sam sposób. Napiszmy zatem najpierw oddzielną funkcję getline, pobierając^ z wejścia następny wiersz. Spróbujemy napisać ją tak, aby mogła być używana w in-nych programach. Jako minimum funkcja getline musi zwracać sygnał o napotkaniu końca pliku. Bardziej pożyteczne byłoby zwracanie długości wiersza lub zera po\ osiągnięciu końca pliku. Można zaakceptować zero jako sygnał końca pliku, nie jest ono bowiem nigdy poprawną długością wiersza. Każdy wiersz zawiera co najmniej | jeden znak; nawet wiersz składający się tylko ze znaku nowego wiersza ma długość !•

Po stwierdzeniu, że dany wiersz jest dłuższy od poprzednio najdłuższego, należy gc| gdzieś zapamiętać. Sugeruje to utworzenie funkcji copy przepisującej nowy wiers/j w bezpieczne miejsce.    i

Ponadto jest potrzebny program sterujący funkcjami getline i copy. Oto wynik naszych rozważań.

1.9 TABLICE ZNAKOWE____

powered by

Mi si ol


#include <stdio.h>

#define MAXLINE 1000 /* maksymalny rozmiar wiersza */

int getline(char line[], int maxline); void copy(char to[ ], char from[ ]);

I* wypisz najdłuższy wiersz */ main()

{

int len;    /* długość bieżącego wiersza */

int max;    /* poprzednia maks. długość */

char line[MAXLINE]; /* bieżący wiersz z wejścia */ char longest[MAXLINE]; /* przechowywany maks. wiersz */

max = 0;

while ((len = getline(line, MAXLINE)) > 0) if (len > max) { max = len; copy(longest, linę);

}

if (max > 0)    /* znaleziono wiersz */

printf(”%s”, longest); return 0;

/* getline: wczytaj wiersz do s, podaj jego długość */ int getline(char s[], int lim)

{

int c, i;

for (i = 0; klim—1 && (c = getchar()) != EOF && c != ’\n’; ++i) s[i] = c; if (c == ’\n’) { s[i] = c;

++i;

}

s[i] = ’\0’; return i;

53


Wyszukiwarka

Podobne podstrony:
ANSI C 5 1 ELEMENTARZ Program wygląda prawie tak samo jak poprzednio, przy czym teraz zmienne fahr
Cechy strukturalne - uniwersalne wskaźniki, za ich pomocą można opisać i poznać każdą strukturę
Magazyn 507 LATOROŚLE IOI w gęstwinę. Chłopcy postanowili iść za jego śladem. Z początku posu
page0193 192 Lekką stopą przesadza okopy i płoty I niewraca, choć matka rży za nim z tęsknoty. 
Elementarz Marian?lski 00158 nie wybiegł na jego spotkanie. I nie chciał się z nim bawić. Odtąd ta
DHTML0089 Rozdział 6.Pojęcie bloku elementu Określenie element jest używane do odwoływania się do ró
W świetle powyższych definicji najistotniejszą cechą myślenia jest to, że za jego pomocą dochodzi si
będę mówił poprawnie l i r5 Uzupełnij zdania, podając nazwę czynności przedstawionej na obrazku, w
dydaktyczne, za pomocą których dąży się do realizacji w określonych formach organizacyjnych celów
należy mieć na uwadze problem, jaki za jego pomocą ma zostać rozwiązany, albowiem nie każde narzędzi
Wstęp do Matlab’a 5 W powyższym skrypcie występuje jedno bardzo istotne polecenie: save. Za jego pom
stopdyktaturze pl „DAR Życia" / "Gift of Life" - Jestem za życiem / I m Pro-Life. Prz
ślona jako pośrednia, utrzymuje się do końca pierwszego roku życia, jakkolwiek już wtedy zaobserwowa
DOM — Document Object Model Podstawy programowania w JavaScript ►Jak odwoływać się do elementów drze
10(13) 2 Ćwiczenia w czytaniu Czytanie za zrozumieniem Tereska i Staś wybrali się do lasu na grzyby.

więcej podobnych podstron