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