C wzory

1. Pobranie 1000 znakow
char tab[1001]={0};
printf(„Podaj tekst:”);
//fgets()
scanf(„%[^\n]s”,tab);
getchar();
for(int i=0;i<1000;i++){
printf(„%c”,tab[i]);
}


2. Zczytywanie dlugosci tablicy
#include <stdio.h>
#include <string.h>
int main() {
unsigned long long size;
char tab[11]={0};
printf(„Podaj imie:”);
scanf(„%10s”,tab);
//fgets(tab,sizeof(tab),stdin);
size=(strlen(tab))-1;

//printf(„%d”,size);
if(tab[size] == 'a’){
printf(„Imie zenskie”);
}else{
printf(„Imie meskie”);
}

return 0;
}

zad3;-Analiza stringa(tekstu)-sprawdzenie czy litera czy nie;
#include <stdio.h>
#include <string.h>
int main() {
int size;
char tab[1001]={0};
printf(„Podaj tekst:”);
scanf(„%[^\n]s”,tab);
size=(strlen(tab));
for(int i=0;i<size;i++){
// printf(„%c”,tab[i]);
if((tab[i]>=97 && tab[i]<=122) || (tab[i]>=65&&tab[i]<=90)){
printf(„znak %d to %c oraz jest litera\n”,i,tab[i]);
}else{
printf(„znak %d to %c TO NIE LITERA!!!!!!\n”,i,tab[i]);
}

}

return 0;
}

zad4;

#include <stdio.h>
#include <string.h>
int main() {
int size;
char tab[20000]={0};
char tabResult[200]={0};
printf(„Podaj tekst:”);
scanf(„%[^\n]s”,tab);
size=(strlen(tab));
int j=0;
if(size>100){
printf(„Input is too long”);
return 2;
}
for(int i=0;i<size;i++){
// printf(„%c”,tab[i]);
if(tab[i]>=97 && tab[i]<=122){ //sprawdzamy czy mala litera
tabResult[j]=tab[i];
j++;
//printf(„znak %d to %c oraz jest litera\n”,i,tab[i]);
}else if(tab[i]>=65 && tab[i]<=90) { //sprawdzam czy wielka litera
tabResult[j]=tab[i];
j++;
tabResult[j]=tab[i];
j++;
tabResult[j]=tab[i];
j++;
}else {
printf(„Incorrect input\n”, i, tab[i]);
return 1;
}


}

//printf()
/*for(int k=0;k<j;k++){
printf(„%c”,tabResult[k]);

}*/
if(j>200){
printf(„Output is too long”);
return 3;
}
for(int k=j;k>=0;k–){
printf(„%c”,tabResult[k]);
}

return 0;

}

zad5; wyszukiwanie min i max;
#include <stdio.h>

int main() {
int tab[101] = {0};
int i = 0;
int w = 0;
int max, min;
printf(„Podaj dane\n”);
do {
if (1 != scanf(„%d”, &tab[i]))
{
printf(„incorrect input”);
return 1;
}
w = i++;
if (w > 99)
break;
} while (tab[w] != -1);

max = tab[0];
min = tab[0];
int k = 0;
float sum = 0;
for (int a = 0;a < 100;a++) {
if (tab[a] == -1) {
//printf(„weszlo/n”);
break;
}
sum = sum + tab[a];
k++;
if (tab[a] > max) {
max = tab[a];
}
if (tab[a] < min) {
min = tab[a];
}
}
printf(„%d\n”, k);
printf(„%d\n”, min);
printf(„%d\n”, max);
float srednia = sum / k;
printf(„%f\n”, srednia);
printf(„%.f\n”, sum);

//printf(„\nmin:%dindeksy: „, min);

for (int a = 0;a < 100;a++) {
if (tab[a] == min) {
printf(„%d „, a);
}
}
printf(„\n”);
//printf(„max:%dindeksy: „, max);
for (int a = 0;a < 100;a++) {
if (tab[a] == max) {
printf(„%d „, a);
}
}

s
return 0;
}
#zad6 -losowanie

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 100
int main() {
/*srand(time (NULL));
int tablica[SIZE]={23,[5]=7,9};//w nawiasie jest rozmiar tablicy zawsze wartosc-1-elementy|| [5]=7-6 wartosc tablicy= 7
int tablica2[2];//teraz wartosci elementow sa losowe (nie wpisalismy {})
for(int i=0;i<SIZE;i++){
printf(„%d”,i[tablica]);//oba zapisy sa poprawne
printf(„\n%d”,tablica[i]);//oba zapisy sa poprawne
}
//aby wylosowac liczbe uzywamy funkcji rand
int j;
for(int k=0;k<10;k++){
j=rand()%10+1;//losuje liczby z zakresu 0-10, aby wylosowac od 1 do 10 to rand()%10+1; wgraj biblioteke 0<stdlib.h>
printf(„\nwylosowana liczba = %d”,j);
//wylosuj w tablicy 100 elementowej
}
/*
j=rand()%10+1;//losuje liczby z zakresu 0-10, aby wylosowac od 1 do 10 to rand()%10+1; wgraj biblioteke <stdlib.h>
printf(„\nwylosowana liczba = %d”,j);
//wylosuj w tablicy 100 elementowej*/

//zadeklaruj tablice na 100 elementow,
//wypelnij ja losowami wartosciami z zakresu 1-10 oraz 1 element wypelniony 0,
//odczytaj wartosc z indeksu 0 i przesun sie o tyle elementow w prawo,
//nastepnie znow odczytaj kolejny element, wykonuj te kroki do napotkania 0.
//jezeli dojdziemy do konca tablicy to musimy zaczac od poczatku.*/
srand(time (NULL));
int tab[SIZE];
int losowanie;
for(int h=0;h<SIZE;h++){
losowanie=rand()%10+1;
tab[h]=losowanie;
// printf(„\nwylosowana liczba to %d”,losowanie);

printf(„\nWartosc= %d”,tab[h]);

}
for(int y=0;y<5;y++){
losowanie=rand()%SIZE;
tab[losowanie]=0;
}
for(int h=0;h<SIZE;h++) {
printf(„\nWylosowane to %d”, tab[h]);
}
printf(„\nOdczytana liczba to: %d”,tab[0]);
int g=0;
while(tab[g] !=0){ //np g=5
g=g+tab[g];
g=g%100;
printf(„\nliczba to %d”,tab[g]);
}
return 0;
}

 

ZAD1:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdbool.h>

int main() {
srand(time (NULL));
int x=5;
int y=5;
int tab[5][5]={0};
//printf(„TEST1\n”);
//int j;
//wpisuje losowe warotsci do tablicy
for (int i = 0; i < 5; i++) {
//printf(„TEST2\n”);
for (int j = 0; j < 5; j++) {
//printf(„TEST3\n”);
//int h
bool isAvailableInTable = false; //bool typ – prawda falsz,
int randomValue=0;

do{ //ta petla zawsze wykona sie minimum 1 raz oraz trwa az do momentu kiedy warunek w while jest speliony
isAvailableInTable=false;
randomValue = rand()%30 + 1;
//sprawdzam czy liczba sie powtarza
for (int a=0; a < 5; a++) {
for(int b=0;b < 5;b++){

if(tab[a][b]==randomValue){
//printf(” tablica a b %d „,tab[a][b]);
//printf(” RandomValue %d „,randomValue);
isAvailableInTable = true;
//printf(„——\n\n”);

}
}

}
}while(isAvailableInTable==true); //while wykonuje sie zawsze gdy warunek jest spełniony

tab[i][j]=randomValue;
//printf(„DODANOLICZBE= %d\n\n\n”,randomValue);
//printf(„%d”,h);
//tab[i][j] = h;
//printf(„%d „,tab[i][j]);
}
//printf(„\n”);
}
//wyswietla wartosci tablicy dwuwymiarowej
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5;j++) {
printf(„%d\t”,tab[i][j]);
}
printf(„\n”);

}
printf(„\n——————————————\n”);
//usuwanie wielokrotnosci liczby 6 i 11
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if(tab[i][j]%6==0 || tab[i][j]%11==0){
tab[i][j]=0;
}
}
}
//wyswietla wartosci tablicy dwuwymiarowej bez wielokrotnosci 6 i 11
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5;j++) {
printf(„%d\t”,tab[i][j]);
}
printf(„\n”);
}
printf(„\n——————————————\n”);

//wyswietlam macierz od prawej strony
for (int i = 0; i < 5; i++) {
for (int j = 5-1; j >= 0;j–) {
printf(„%d\t”,tab[i][j]);
}
printf(„\n”);
}

return 0;
}

PO CO C?

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

ZAD 1:

Dla macierzy [10][10] wypełnionej niepowtarzającymi się liczbami z przedziału <1-125> usuń wszystkie wielokrotności liczb 6 oraz 11 a następnie wykonaj jej lustrzane odbicie wedle prawej krawędzi macierzy, nie korzystając z żadnej dodatkowej macierzy. Wyświetl oryginalną macierz i macierz po przekształceniach.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdbool.h>

int main() {
srand(time (NULL));
int x=5;
int y=5;
int tab[5][5]={0};
//printf("TEST1\n");
//int j;
//wpisuje losowe warotsci do tablicy
for (int i = 0; i < 5; i++) {
//printf("TEST2\n");
for (int j = 0; j < 5; j++) {
//printf("TEST3\n");
//int h
bool isAvailableInTable = false; //bool typ - prawda falsz,
int randomValue=0;

do{ //ta petla zawsze wykona sie minimum 1 raz oraz trwa az do momentu kiedy warunek w while jest speliony
isAvailableInTable=false;
randomValue = rand()%30 + 1;
//sprawdzam czy liczba sie powtarza
for (int a=0; a < 5; a++) {
for(int b=0;b < 5;b++){

if(tab[a][b]==randomValue){
//printf(" tablica a b %d ",tab[a][b]);
//printf(" RandomValue %d ",randomValue);
isAvailableInTable = true;
//printf("------\n\n");

}
}

}
}while(isAvailableInTable==true); //while wykonuje sie zawsze gdy warunek jest spełniony

tab[i][j]=randomValue;
//printf("DODANOLICZBE= %d\n\n\n",randomValue);
//printf("%d",h);
//tab[i][j] = h;
//printf("%d ",tab[i][j]);
}
//printf("\n");
}
//wyswietla wartosci tablicy dwuwymiarowej
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5;j++) {
printf("%d\t",tab[i][j]);
}
printf("\n");

}
printf("\n------------------------------------------\n");
//usuwanie wielokrotnosci liczby 6 i 11
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if(tab[i][j]%6==0 || tab[i][j]%11==0){
tab[i][j]=0;
}
}
}
//wyswietla wartosci tablicy dwuwymiarowej bez wielokrotnosci 6 i 11
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5;j++) {
printf("%d\t",tab[i][j]);
}
printf("\n");
}
printf("\n------------------------------------------\n");

//wyswietlam macierz od prawej strony
for (int i = 0; i < 5; i++) {
for (int j = 5-1; j >= 0;j--) {
printf("%d\t",tab[i][j]);
}
printf("\n");
}


return 0;
}

zad2:

Twoim zadaniem jest otwarcie sejfu w banku. Masz instrukcję na kartce do poszczególnych elementów kodu. Zamek cyfrowy na sejfie składa się z kolejnych 9 cyfr (od 1 do 9) na macierzy[3][3]. Zawsze zaczynasz od 5 czyli od środka macierzy. Przykładowe hasło do kodu dostępu to „GL!DP!LLLD!P!” gdzie G – góra , L – lewo , D – dół , P – prawo a ! oznacza wciśnij klawisz. W momencie kiedy na zamku cyfrowym nie możemy już się przemieścić w wyznaczonym kierunku pozostajemy na danej pozycji. GL: 5=>2=>1 DP: 1=>4=>5 LLLD: 5=>4=>4=>4=>7 P: 7=>8 Finalny kod 1578 Zamek cyfrowy – wygląd: 1 2 3 4 5 6 7 8 9 Napisz program, który wczyta od użytkownika dowolny test długości max 500 znaków a w następnej linii długość poszukiwanego kodu dostępu. Sprawdź czy wczytana instrukcją do kodu zgadza się z formatem oraz z długością kodu który poszukujesz. W przypadku błędu zwróć wartość -1. Wyznacz finalny kod dostępu.

#include <stdio.h>
#include <string.h>
int main() {
int number[3][3]={0};
int k=1;
//wpisywanie wartosci do tablicy
for (int i=0;i<3;i++) {
for (int j=0;j<3;j++) {
number[i][j]=k;
k=k+1;
}
}

//wyswietlanie
for (int i=0;i<3;i++) {
for (int j=0;j<3;j++) {
printf("%d ",number[i][j]);
}
printf("\n");
}

char tab[500]={0};
int length=0;
printf("Podaj tekst:");
scanf("%500[^\n]s",tab);
printf("Podaj dlugosc kodu");
scanf("%d",&length);
int size =(strlen(tab));

//printf("rozmiar to %d\n", size);
//printf("%c",tab[0]);
//sprawdzanie czy G L D P ! jest w podanym tekscie / jesli nie to return 1;
for (int i = 0; i < size;i++) {
if(tab[i]=='G'|| tab[i]=='L'|| tab[i]=='D'|| tab[i]=='P' || tab[i]=='!'){ //||tab[i]!='L'||tab[i]!='D'||tab[i]!='P'||tab[i]!='!'
//printf("OKEJ");
}else{
//printf("LIPA");
return -1;
}
}
//gdy uzytkownik poda kod
int key[500]={0};
int a=1,b=1;
int counter = 0;
for (int i = 0; i < size; i++) {
if(tab[i]=='G'){
a=a-1;
if(a<0){
a=0;
}
b=b;
}
if(tab[i]=='L'){
a=a;
b=b-1;
if(b<0){
b=0;
}
}
if(tab[i]=='D'){
a=a+1;
if(a>2){
a=2;
}
b=b;
}
if(tab[i]=='P'){
a=a;
b=b+1;
if(b>2){
b=2;
}
}
if(tab[i]=='!'){
key[counter] = number[a][b];
counter++;
}
}
if(counter!=length){
//printf("BLAD");
return -1;
}
for (int i = 0; i <=counter-1; ++i){
printf("%d",key[i]);
}
//printf("%d")
return 0;
}

zad3

Zostałeś asystentem na Wydziale Chemii i Twoim pierwszym zadanie jest napisanie programu do analizy i redukcji związków chemicznych. Polimery które badasz składając się z elementów które połączone ze sobą wchodzą wzajemnie w reakcję chemiczną i ulegają redukcji. Twoim zadaniem jest wyznaczenie finalne związku chemicznego. Zasady chemiczne: Dla aA a i A reagują ze sobą i redukują się wzajemnie nie pozostawiając nic Dla abBA następuje redukcja bB a następnie aA i nie pozostaje nic. Dla aaBAAB aa i AA nie reaguję ze sobą ponieważ ich polaryzacje są identyczne Zawsze redukują się sąsiadujące związki chemiczne o przeciwnej polaryzacji czyli : mała litera obok dużej litery lub duża litera obok małej litery np. aA Aa Qq qQ Bb bB Uu Uu yY Yy Przykład : dabAcCaCBAcCcaDA => dabAaCBAcCcaDA => dabCBAcCcaDA => dabCBAcaDA Napisz program, który pobierze od użytkownika wzór polimeru do testu a następnie go przetworzy i wypisze jako tekst finalną wersję polimeru po redukcji oraz jego długość. W przypadku wystąpienia liczb we wczytanym polimerze należy zwrócić wartość -1. Podaj polimer: dabAcCaCBAcCcaDA Wynik: dabCBAcaDA / 10 

#include <stdio.h>
#include <string.h>
#include <stdbool.h>

 

 

int main() {
char tab[500]={0};
int length=0;
printf(„Podaj polimer:”);
scanf(„%500[^\n]s”,tab);
int size =(strlen(tab));
char result[500]={0};
int counter =0;//licznik tablicy
bool isChange=false;
do{
//printf(„TEST1\n”);
isChange=false;
counter=0;
//printf(„TEST2\n”);
for (int i = 0; i <size ; i++) {
if(((tab[i]>=’a’ && tab[i]<=’z’) || (tab[i]>=’A’ && tab[i]<=’Z’)) &&((tab[i] == tab[i+1]+’ ’) || (tab[i] == tab[i + 1] – ’ ’))){ //sprawdzam czy obecnie mam mala lub duza litere w indeksie i oraz jej przeciwienstwo w indeksie i+1
i++;
isChange = true;
}else{
result[counter] = tab[i];
counter++;
}
// printf(„%c „,tab[i]);
}

 

//printf(„TEST3\n”);

 

//zeruje tablice
for (int i = 0; i < size; i++) {
tab[i]=0;
}
//printf(„TEST4\n”);
//przypisuje wartosci do talicy rezultaty aby poddac jej dalszej analizie
for (int i = 0; i < counter; i++) {
tab[i]= result[i];
result[i]=’0′;
}
//printf(„TEST5\n”);
//isChange=false;
}while(isChange==true);//wykonuje sie caly czas az is change jest rowne true
//printf(„Printuj!!!!”);
int resultCounter=0;
for (int i = 0; i < size; i++) {
if((tab[i]>=’a’ && tab[i]<=’z’) || (tab[i]>=’A’ && tab[i]<=’Z’)){
resultCounter++;
}
printf(„%c”, tab[i]);
}
printf(„\nWynik %d”,resultCounter);

 

return 0;
}