LU-LSP-b12:L01
Praktiskais darbs
Darbs ir paredzēts, lai iepazītos Linux kā izstrādes un testēšanas vidi.
Šis darbs nav jāiesūta. Tas tiek veikts kopīgi, pārrunājot risināšanas gaitu.
Uzdevums:
- Uzrakstīt divas programmas ar analogu funkcionalitāti:
- (C valodā) Ielasa skaitļu rindu un izdrukā skaitļus apgrieztā secībā
- (shell script) Ielasa skaitļu rindu un izdrukā tos apgrieztā secībā
- Uzrakstīt vienu Makefile, kurā būtu aprakstīta:
- C programmas būvēšanas komandas
- abu programmu testēšanas komandas.
- Nokompilēt un notestēt risinājumu.
Var pieņemt, ka būs ne vairāk kā 100 skaitļu.
Ievadpiemērs (test.txt):
10 20 30 40 50 60 70 80 90 100 110
Korekts izvads uz ievadpiemēru:
110 100 90 80 70 60 50 40 30 20 10
pd1.c:
#include <stdio.h> #define MAX_NUMBERS 100 int main(void) { int numbers[MAX_NUMBERS]; int i; // nolasam skaitljus for (i = 0; i < MAX_NUMBERS; i++) { int ret = scanf("%d", &numbers[i]); if (ret != 1) break; } // tagad numbers[0] .. numbers[i-1] satur skaitljus. // izdrukājam tos preteejaa seciibaa for (i = i - 1; i >= 0; i--) { printf("%d ", numbers[i]); } printf("\n"); }
pd1.sh
#!/bin/sh NUMBERS="" read LINE for n in $LINE; do NUMBERS=$n" "$NUMBERS done echo $NUMBERS
Makefile:
all: gcc pd1.c -o pd1 test: cat test.txt | ./pd1 | ./pd1.sh