Programozó versenyek

Magas szintű programozási nyelvek 1, 2014. április 9., Sz18 ZH

2014. április 9. 18:05 – 2014. április 9. 19:50

for ciklus

Írjon függvényt, amely paraméterként megkap egy sztringet (változónév) és két egész számot (a-t és b-t)! A sztring egy C változó neve. A függvény a paraméterként megkapott sztring megváltoztatása nélkül hozzon létre és adjon vissza egy olyan új sztringet, amely a

for ( változónév = a; változónév < b; ++változónév ) { }

alakú for ciklust tartalmazza, ha ab, egyébként pedig a

for ( változónév = a; változónév > b; --változónév ) { }

alakú sztringet hozza létre! A sztringben a példában megadott módon, egy-egy szóközzel válassza el egymástól az egyes lexikális egységeket!

A függvény specifikációja

char *for_loop( char *, int, int );

Megjegyzés

A függvényt helyezze a for.c nevű állományba, és ezt az állományt küldje be megoldásként a kiértékelő rendszernek! Megoldását a példa bemenetben szereplő adatokkal az alábbi két állomány segítségével tesztelheti. Megoldásának kiértékelését a tesztelő rendszer nem feltétlenül ezeknek az állományoknak a felhasználásával végzi!

main.c

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5.   char v[ 1000 ];
  6.   int a, b;
  7.   char *for_loop( char *, int, int );
  8.   while ( scanf( "%s%d%d", v, &a, &b ) != EOF )
  9.   {
  10.     char *p = for_loop( v, a, b );
  11.     puts( p );
  12.     free( p );
  13.   }
  14.   return EXIT_SUCCESS;
  15. }
letöltés szöveges állományként

Makefile

  1. CC = gcc
  2. OBJS = main.o for.o
  3. TARGETS = main
  4. all: $(TARGETS)
  5. main: main.o for.o
  6. $(CC) main.o for.o -o main
  7. main.o: main.c
  8. $(CC) -c main.c
  9. for.o: for.c
  10. $(CC) -c for.c
  11. clean:
  12. rm -rf $(OBJS) *~ $(TARGETS)
letöltés szöveges állományként

Példa bemenet

  1. i 0 10
  2. var 25 20
  3. c_identifier -10 -10
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

  1. for ( i = 0; i < 10; ++i ) { }
  2. for ( var = 25; var > 20; --var ) { }
  3. for ( c_identifier = -10; c_identifier < -10; ++c_identifier ) { }
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.