Difference between revisions of "LU-LSP-b12:L01"

From DiLab
Jump to: navigation, search
 
Line 16: Line 16:
Var pieņemt, ka būs ne vairāk kā 100 skaitļu.
Var pieņemt, ka būs ne vairāk kā 100 skaitļu.


Ievadpiemērs:
Ievadpiemērs (test.txt):
10 20 30 40 50 60 70 80 90 100 110
10 20 30 40 50 60 70 80 90 100 110


Korekts izvads uz ievadpiemēru:
Korekts izvads uz ievadpiemēru:
110 100 90 80 70 60 50 40 30 20 10
110 100 90 80 70 60 50 40 30 20 10

pd1.c:
<pre>
#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");
}
</pre>

pd1.sh
<pre>
#!/bin/sh
NUMBERS=""
read LINE
for n in $LINE; do
NUMBERS=$n" "$NUMBERS
done

echo $NUMBERS
</pre>

Makefile:
<pre>
all:
gcc pd1.c -o pd1

test:
cat test.txt | ./pd1 | ./pd1.sh
</pre>

Latest revision as of 17:57, 4 September 2012

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