Οδηγός Μελέτης - Εισαγωγή στον Προγραμματισμό

Α6.23 · Τυπώνοντας τον Πίνακα ASCII

Online τελική εξέταση Δεκεμβρίου 2023, Εξέταση #15, Θέμα 2 · Δυσκολία ★★☆ · programming · Κεφάλαια: 6, 2, 4

Πρόγραμμα: ascii.c

Γράψτε ένα πρόγραμμα το οποίο δέχεται ως πρώτο όρισμα τον αριθμό στηλών που θέλουμε να χρησιμοποιήσει για τον πίνακα ASCII και στην συνέχεια τυπώνει τον πίνακα στην πρότυπη έξοδο. Οι χαρακτήρες πρέπει να τυπώνονται με την σειρά ο ένας κάτω από τον άλλο μέχρι να περάσουμε στην επόμενη στήλη. Για κάθε χαρακτήρα πρέπει να τυπώνεται: “χαρακτήρας: δεκαεξαδική αναπαράσταση”. Για παράδειγμα “Α: 41”. Πρέπει να τυπωθούν όλοι οι χαρακτήρες στο εύρος [0-127]. Στην θέση των χαρακτήρων [0x08-0x0d] θέλουμε να τυπώνεται το ‘x’. Παραδείγματα εκτέλεσης ακολουθούν:

$ gcc -o ascii ascii.c
$ ./ascii 5
	:	00 	:	19 	2:	32 	K:	4b 	d:	64 	}:	7d
	:	01 	�:	1a 	3:	33 	L:	4c 	e:	65 	~:	7e
	:	02 		1b 	4:	34 	M:	4d 	f:	66 	:	7f
	:	03 	:	1c 	5:	35 	N:	4e 	g:	67
	:	04 	:	1d 	6:	36 	O:	4f 	h:	68
	:	05 	:	1e 	7:	37 	P:	50 	i:	69
	:	06 	:	1f 	8:	38 	Q:	51 	j:	6a
	:	07 	 :	20 	9:	39 	R:	52 	k:	6b
	x:	08 	!:	21 	::	3a 	S:	53 	l:	6c
	x:	09 	":	22 	;:	3b 	T:	54 	m:	6d
	x:	0a 	#:	23 	<:	3c 	U:	55 	n:	6e
	x:	0b 	$:	24 	=:	3d 	V:	56 	o:	6f
	x:	0c 	%:	25 	>:	3e 	W:	57 	p:	70
	x:	0d 	&:	26 	?:	3f 	X:	58 	q:	71
	:	0e 	':	27 	@:	40 	Y:	59 	r:	72
	:	0f 	(:	28 	A:	41 	Z:	5a 	s:	73
	:	10 	):	29 	B:	42 	[:	5b 	t:	74
	:	11 	*:	2a 	C:	43 	\:	5c 	u:	75
	:	12 	+:	2b 	D:	44 	]:	5d 	v:	76
	:	13 	,:	2c 	E:	45 	^:	5e 	w:	77
	:	14 	-:	2d 	F:	46 	_:	5f 	x:	78
	:	15 	.:	2e 	G:	47 	`:	60 	y:	79
	:	16 	/:	2f 	H:	48 	a:	61 	z:	7a
	:	17 	0:	30 	I:	49 	b:	62 	{:	7b
	:	18 	1:	31 	J:	4a 	c:	63 	|:	7c
$ ./ascii 6
	:	00 	:	15 	*:	2a 	?:	3f 	T:	54 	i:	69 	~:	7e
	:	01 	:	16 	+:	2b 	@:	40 	U:	55 	j:	6a 	:	7f
	:	02 	:	17 	,:	2c 	A:	41 	V:	56 	k:	6b
	:	03 	:	18 	-:	2d 	B:	42 	W:	57 	l:	6c
	:	04 	:	19 	.:	2e 	C:	43 	X:	58 	m:	6d
	:	05 	�:	1a 	/:	2f 	D:	44 	Y:	59 	n:	6e
	:	06 		1b 	0:	30 	E:	45 	Z:	5a 	o:	6f
	:	07 	:	1c 	1:	31 	F:	46 	[:	5b 	p:	70
	x:	08 	:	1d 	2:	32 	G:	47 	\:	5c 	q:	71
	x:	09 	:	1e 	3:	33 	H:	48 	]:	5d 	r:	72
	x:	0a 	:	1f 	4:	34 	I:	49 	^:	5e 	s:	73
	x:	0b 	 :	20 	5:	35 	J:	4a 	_:	5f 	t:	74
	x:	0c 	!:	21 	6:	36 	K:	4b 	`:	60 	u:	75
	x:	0d 	":	22 	7:	37 	L:	4c 	a:	61 	v:	76
	:	0e 	#:	23 	8:	38 	M:	4d 	b:	62 	w:	77
	:	0f 	$:	24 	9:	39 	N:	4e 	c:	63 	x:	78
	:	10 	%:	25 	::	3a 	O:	4f 	d:	64 	y:	79
	:	11 	&:	26 	;:	3b 	P:	50 	e:	65 	z:	7a
	:	12 	':	27 	<:	3c 	Q:	51 	f:	66 	{:	7b
	:	13 	(:	28 	=:	3d 	R:	52 	g:	67 	|:	7c
	:	14 	):	29 	>:	3e 	S:	53 	h:	68 	}:	7d

Υπόδειξη

Οι χαρακτήρες τυπώνονται κατά στήλες, αλλά το τερματικό γράφει κατά γραμμές: για τη γραμμή r και τη στήλη c ο χαρακτήρας είναι c * rows + r. Βρείτε από τα παραδείγματα πώς προκύπτει το πλήθος γραμμών από το όρισμα και προσέξτε την ημιτελή τελευταία στήλη και τη μορφοποίηση με %02x.

Αριθμός στον οδηγό: Α6.23 (στο κεφάλαιο) · Μόνιμο αναγνωριστικό: exam-2023-fall-ex15-q2 · Σύνδεσμος: https://progintro.github.io/study/questions/exams/exam-2023-fall-ex15-q2.html · Markdown (GitHub)