Esercizi e sorgenti dei programmi
Visualizzazione di tutte le stringhe binarie di lunghezza n
L'algoritmo STRINGHEBINARIE, dato un intero n>0, consente di generare tutte le 2n stringhe binarie di lunghezza n. La pseudo-codifica dell'algoritmo è la seguente:
STRINGHEBINARIE(n)
- Input: Un intero positivo n
- Output: Le stringhe binarie S = (s0, s1, ..., sn−1) di lunghezza n
- per ogni i = 0, 1, 2, ..., n−1:
- si = 0
- fine-ciclo
- i = 0
- fintanto che i < n ripeti:
- i = 0
- fintanto che i < n e si ≠ 0 ripeti:
- si = 0
- i = i+1
- fine-ciclo
- se i < n allora si = 1
- scrivi la stringa S = (s0, s1, ..., sn−1)
- fine-ciclo
Codifica in linguaggio C
#include <stdlib.h> #include <stdio.h> #define MAX 100 void stampaArray(int A[], int n) { int i; for (i=0; i<n; i++) printf("%d ", A[i]); printf("\n"); return; } int main(void) { int S[MAX], i, n; long c=0; printf("Numero di elementi: "); scanf("%d", &n); for (i=0; i<n; i++) S[i] = 0; i = 0; while (i<n) { i = 0; while (i < n && S[i] != 0) { S[i] = 0; i++; } if (i < n) S[i] = 1; printf("%6ld: ", c++); stampaArray(S, n); } return(0); }
Codifica in linguaggio Python 3.x
s = list() n = int(input("Numero di elementi: ")) for i in range(n): s.append(0) i = 0 while i < n: i = 0 while i < n and s[i] != 0: s[i] = 0 i = i+1 if i < n: s[i] = 1 print(s, end="\r") print()