Zaprojektuj rozwiązania następujących zadań oraz zakoduj je w C. Wynikiem powinny być pliki z kodem, pliki Makefile
oraz pliki danych testowych. Wykorzystaj procedury. Użyj testowania z narzędziem diff (z opcją y
i bez niej).
void NazwaProcedury(void){ Ciało Procedury }
void PrintHead(void){
printf(" *****\n");
printf(" * *\n");
printf(" *****\n");
}
int main(void){
PrintHead();
return 0;
}
void PrintHead(void);
int main(void){
PrintHead();
return 0;
}
void PrintHead(void){
printf(" *****\n");
printf(" * *\n");
printf(" *****\n");
}
Plik nagłówkowy (painter.h
):
#ifndef PAINTER_H #define PAINTER_H void PrintHead(void); void PrintArms(void); void PrintBody(void); void PrintLegs(void); void PrintFeet(void); #endif // PAINTER_H
Plik z kodem (painter.c
):
#include <stdio.h>
#include "painter.h"
void PrintHead(void){
printf(" *****\n");
printf(" * *\n");
printf(" *****\n");
}
void PrintArms(void){
printf(" * * *\n");
printf(" ** * **\n");
printf(" ********\n");
}
void PrintBody(void){
printf(" ***\n");
printf(" ***\n");
printf(" ***\n");
printf(" ***\n");
}
void PrintLegs(void){
printf(" * *\n");
printf(" * *\n");
printf(" * *\n");
printf(" * *\n");
}
void PrintFeet(void){
printf(" *** ***\n");
printf(" *** ***\n");
printf(" *** ***\n");
}
Plik główny (figure.c
):
#include "painter.h"
int main(void){
PrintHead();
PrintArms();
PrintBody();
PrintLegs();
PrintFeet();
return 0;
}
Kompilacja:
gcc -Wall -g figure.c painter.c -o figure
Przykładowy Makefile
:
CC=gcc CFLAGS=-Wall -g SOURCES = $(wildcard *.c) EXECUTABLE = figure $(EXECUTABLE): $(SOURCES) $(CC) $^ -o $@ clean: rm -f $(EXECUTABLE) $(EXECUTABLE).exe
void PrintSquare(int number){ printf("%d\n", number*number); } int main(void){ int n = 0; PrintSquare(0); PrintSquare(n); PrintSquare(sqrt(n++) + 5); return 0; }
void Sqr(int * number){ *number = (*number) * (*number); } int main(void){ int n = 2; Sqr(&n); printf("%u\n", n); return 0; }
./program < test.input
./program < test.input > output.test
diff -y output.test test.ouptput