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