LU-LSP-b12:L01

From DiLab
Revision as of 14:57, 4 September 2012 by Atis (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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:

  1. 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ā
  2. Uzrakstīt vienu Makefile, kurā būtu aprakstīta:
    • C programmas būvēšanas komandas
    • abu programmu testēšanas komandas.
  3. 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