[C] Program z czcionką kalkulatorową
-
- Użytkownik
- Posty: 76
- Rejestracja: 14 gru 2016, o 17:02
- Płeć: Mężczyzna
- Lokalizacja: Warszawa
- Podziękował: 15 razy
- Pomógł: 2 razy
[C] Program z czcionką kalkulatorową
Zadanie. Napisz program (w języku C), który wprowadzane z klawiatury lub z pliku liczby całkowite wyświetla na ekranie wykorzystując czcionkę kalkulatorową tzn. znaki.
Każdy ze znaków stworzyłem za pomocą funkcji if. Program, który napisałem potrafi wyświetlić na ekranie jedną liczbę w tej czcionce, która została wpisana z klawiatury. Potrzebuję pomocy, nie wiem jak zrobić aby program wczytywał z klawiatury dowolną ilość cyfr oraz jak zrobić żeby wczytywał liczby z pliku i wyświetlał je w tej czcionce. Byłbym wdzięczny za pomoc
Każdy ze znaków stworzyłem za pomocą funkcji if. Program, który napisałem potrafi wyświetlić na ekranie jedną liczbę w tej czcionce, która została wpisana z klawiatury. Potrzebuję pomocy, nie wiem jak zrobić aby program wczytywał z klawiatury dowolną ilość cyfr oraz jak zrobić żeby wczytywał liczby z pliku i wyświetlał je w tej czcionce. Byłbym wdzięczny za pomoc
Ostatnio zmieniony 20 gru 2016, o 11:34 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Powód: Poprawa wiadomości.
-
- Użytkownik
- Posty: 76
- Rejestracja: 14 gru 2016, o 17:02
- Płeć: Mężczyzna
- Lokalizacja: Warszawa
- Podziękował: 15 razy
- Pomógł: 2 razy
[C] Program z czcionką kalkulatorową
Kod: Zaznacz cały
#include <stdio.h>
int main()
{
int x;
printf("Wprowadz liczby: ");
scanf("%d, %d ",&x);
if(x==0)
{printf(" _
");
printf("| |
");
printf("|_|
");}
if(x==1)
{printf(" |
");
printf(" |
");}
if(x==2)
{printf(" _
");
printf(" _|
");
printf("|_
");}
if(x==3)
{printf(" _
");
printf(" _|
");
printf(" _|
");}
if(x==4)
{printf("|_|
");
printf(" |
");}
if(x==5)
{printf(" _
");
printf("|_
");
printf(" _|
");}
if(x==6)
{printf(" _
");
printf("|_
");
printf("|_|
");}
if(x==7)
{printf(" _
");
printf(" |
");
printf(" |
");}
if(x==8)
{printf(" _
");
printf("|_|
");
printf("|_|");}
if(x==9)
{printf(" _
");
printf("|_|
");
printf(" _|
");}
}
-
- Użytkownik
- Posty: 1931
- Rejestracja: 29 maja 2009, o 11:58
- Płeć: Mężczyzna
- Lokalizacja: Warszawa
- Podziękował: 145 razy
- Pomógł: 320 razy
[C] Program z czcionką kalkulatorową
1)
to nie zadziała poprawnie
2) jest coś takiego jak poczytaj sobie o tym
3) na końcu powinno być
4) formatowanie kodu do poprawy
5) wpisujesz od razu całą liczbę, np. 44
a tak to wygląda:
Kod: Zaznacz cały
scanf("%d, %d ",&x);
2) jest coś takiego jak
Kod: Zaznacz cały
else if
3) na końcu powinno być
Kod: Zaznacz cały
return 0
5) wpisujesz od razu całą liczbę, np. 44
Kod: Zaznacz cały
#include <stdio.h>
void fun(unsigned);
int main()
{
long long unsigned x;
unsigned liczba_cyfr;
char buffer[100];
printf("Wprowadz liczbe ktora chcesz wyswietlic: ");
scanf("%llu", &x);
liczba_cyfr = sprintf(buffer, "%llu", x);
for (unsigned i = 0; i < liczba_cyfr; ++i)
fun(buffer[i] - '0');
return 0;
}
void fun(unsigned x)
{
if (x == 0)
{
printf(" _\n");
printf("| |\n");
printf("|_|\n");
}
else if (x == 1)
{
printf("\n");
printf(" |\n");
printf(" |\n");
}
else if (x == 2)
{
printf(" _\n");
printf(" _|\n");
printf("|_\n");
}
else if (x == 3)
{
printf(" _\n");
printf(" _|\n");
printf(" _|\n");
}
else if (x == 4)
{
printf("\n");
printf("|_|\n");
printf(" |\n");
}
else if (x == 5)
{
printf(" _\n");
printf("|_\n");
printf(" _|\n");
}
else if (x == 6)
{
printf(" _\n");
printf("|_\n");
printf("|_|\n");
}
else if (x == 7)
{
printf(" _\n");
printf(" |\n");
printf(" |\n");
}
else if (x == 8)
{
printf(" _\n");
printf("|_|\n");
printf("|_|\n");
}
else
{
printf(" _\n");
printf("|_|\n");
printf(" _|\n");
}
}
-
- Użytkownik
- Posty: 76
- Rejestracja: 14 gru 2016, o 17:02
- Płeć: Mężczyzna
- Lokalizacja: Warszawa
- Podziękował: 15 razy
- Pomógł: 2 razy
[C] Program z czcionką kalkulatorową
Dziękuję bardzo, właśnie o to mi chodziło mam jeszcze kilka pytań:
Jak zrobić żeby te liczby były wyświetlane obok siebie a nie w kolejnych wierszach? Tak żebym mógł wypisywać liczby kilku cyfrowe.
Chciałbym wprowadzić także znak minus, aby wyświetlać liczby ujemne. Nie wiem za bardzo jak go stworzyć
Jak zrobić żeby te liczby były wyświetlane obok siebie a nie w kolejnych wierszach? Tak żebym mógł wypisywać liczby kilku cyfrowe.
Chciałbym wprowadzić także znak minus, aby wyświetlać liczby ujemne. Nie wiem za bardzo jak go stworzyć
-
- Użytkownik
- Posty: 576
- Rejestracja: 2 lut 2012, o 21:42
- Płeć: Mężczyzna
- Lokalizacja: Radom
- Podziękował: 1 raz
- Pomógł: 64 razy
[C] Program z czcionką kalkulatorową
Jaki kompilator i system operacyjny?
Jeśli nie chcesz korzystać z bibliotek zależnych od środowiska, to najprościej będzie utworzyć tablice zawierające kolejno pierwszy, drugi i trzeci wiersz liczby, a następnie wyświetlanie całych wierszy (liczby „rysowane” nie jedna po drugiej, a od góry do dołu).
Jeśli nie chcesz korzystać z bibliotek zależnych od środowiska, to najprościej będzie utworzyć tablice zawierające kolejno pierwszy, drugi i trzeci wiersz liczby, a następnie wyświetlanie całych wierszy (liczby „rysowane” nie jedna po drugiej, a od góry do dołu).
-
- Użytkownik
- Posty: 1931
- Rejestracja: 29 maja 2009, o 11:58
- Płeć: Mężczyzna
- Lokalizacja: Warszawa
- Podziękował: 145 razy
- Pomógł: 320 razy
[C] Program z czcionką kalkulatorową
Kod: Zaznacz cały
#include <stdio.h>
#include <string.h>
void fun(char *, char *, char *, char *, const char tablica[10][3][5], unsigned);
const size_t SZEROKOSC = 80;
int main()
{
const char tablica[10][3][5] =
{
{
" _ ",
"| | ",
"|_| "
},
{
" ",
" | ",
" | ",
},
{
" _ ",
" _| ",
"|_ "
},
{
" _ ",
" _| ",
" _| "
},
{
" ",
"|_| ",
" | "
},
{
" _ ",
"|_ ",
" _| "
},
{
" _ ",
"|_ ",
"|_| "
},
{
" _ ",
" | ",
" | "
},
{
" _ ",
"|_| ",
"|_| "
},
{
" _ ",
"|_| ",
" _| "
}
};
long long unsigned x;
unsigned liczba_cyfr;
char buffer[100];
printf("Wprowadz liczbe ktora chcesz wyswietlic: ");
scanf("%llu", &x);
liczba_cyfr = sprintf(buffer, "%llu", x);
char wiersz0[SZEROKOSC], wiersz1[SZEROKOSC], wiersz2[SZEROKOSC];
fun(buffer, wiersz0, wiersz1, wiersz2, tablica, liczba_cyfr);
return 0;
}
void fun(char *buffer, char * wiersz0, char *wiersz1, char *wiersz2, const char tablica[10][3][5], unsigned liczba_cyfr)
{
for(size_t i = 0; i < SZEROKOSC; ++i)
{
wiersz0[i] = '\0';
wiersz1[i] = '\0';
wiersz2[i] = '\0';
}
strcpy(wiersz0, tablica[buffer[0] - '0'][0]);
strcpy(wiersz1, tablica[buffer[0] - '0'][1]);
strcpy(wiersz2, tablica[buffer[0] - '0'][2]);
for(size_t i = 1; i < liczba_cyfr; ++i)
{
strcat(wiersz0, tablica[buffer[i] - '0'][0]);
strcat(wiersz1, tablica[buffer[i] - '0'][1]);
strcat(wiersz2, tablica[buffer[i] - '0'][2]);
}
printf("%s\n%s\n%s\n\n", wiersz0, wiersz1, wiersz2);
}
Kod: Zaznacz cały
Wprowadz liczbe ktora chcesz wyswietlic: 9876543210
_ _ _ _ _ _ _ _
|_| |_| | |_ |_ |_| _| _| | | |
_| |_| | |_| _| | _| |_ | |_|
-
- Użytkownik
- Posty: 76
- Rejestracja: 14 gru 2016, o 17:02
- Płeć: Mężczyzna
- Lokalizacja: Warszawa
- Podziękował: 15 razy
- Pomógł: 2 razy
[C] Program z czcionką kalkulatorową
Mam jeszcze jeden problem, a mianowicie z wypisywaniem w tej czcionce liczb wczytanych z pliku. Program wypisuje te liczby ale nie w tej czcionce w której bym chciał. Proszę o pomoc.
Kod: Zaznacz cały
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void fun(char *, char *, char *, char *, const char tablica[10][3][5], unsigned);
const size_t SZEROKOSC = 80;
int main()
{
const char tablica[10][3][5] =
{
{
" _ ",
"| | ",
"|_| "
},
{
" ",
" | ",
" | ",
},
{
" _ ",
" _| ",
"|_ "
},
{
" _ ",
" _| ",
" _| "
},
{
" ",
"|_| ",
" | "
},
{
" _ ",
"|_ ",
" _| "
},
{
" _ ",
"|_ ",
"|_| "
},
{
" _ ",
" | ",
" | "
},
{
" _ ",
"|_| ",
"|_| "
},
{
" _ ",
"|_| ",
" _| "
}
};
long long unsigned x;
unsigned liczba_cyfr;
char buffer[100];
int t;
printf("1.Wczytaj liczby z klawiatury\n2.Wczytaj liczby z pliku\n");
printf("Wybierz operacje: ");
scanf("%d",&t);
if(t==1)
{
printf("Wprowadz liczbe ktora chcesz wyswietlic: ");
scanf("%llu", &x);
liczba_cyfr = sprintf(buffer, "%llu", x);
char wiersz0[SZEROKOSC], wiersz1[SZEROKOSC], wiersz2[SZEROKOSC];
fun(buffer, wiersz0, wiersz1, wiersz2, tablica, liczba_cyfr);
}
if(t==2)
{
FILE *plik = fopen("liczby.txt", "r");
long long n;
if (plik == NULL)
{
printf("Otwarcie nieudane");
exit(-1);
}
while (fscanf(plik, "%d", &n) != EOF)
{
printf("%d\n", n);
}
fclose(plik);
}
return 0;
}
void fun(char *buffer, char * wiersz0, char *wiersz1, char *wiersz2, const char tablica[10][3][5], unsigned liczba_cyfr)
{
size_t i;
for(i=0; i<SZEROKOSC; ++i)
{
wiersz0[i] = '\0';
wiersz1[i] = '\0';
wiersz2[i] = '\0';
}
strcpy(wiersz0, tablica[buffer[0] - '0'][0]);
strcpy(wiersz1, tablica[buffer[0] - '0'][1]);
strcpy(wiersz2, tablica[buffer[0] - '0'][2]);
for(i = 1; i < liczba_cyfr; ++i)
{
strcat(wiersz0, tablica[buffer[i] - '0'][0]);
strcat(wiersz1, tablica[buffer[i] - '0'][1]);
strcat(wiersz2, tablica[buffer[i] - '0'][2]);
}
printf("%s\n%s\n%s\n\n", wiersz0, wiersz1, wiersz2);
}