A A+ A++

Podstawowe zadania z przedmiotu "Informatyka i wstęp do programowania"

Zadania z C++ (Arduino)

				
					//---
// Program sortuje tablice liczb całkowitych i je wyświetla
int wT = 10; //Wielkość tablicy
int tablicaA[] = {30, 17, 21, 5, 24, 12, 25, 11, 9, 2};

void setup() {
Serial.begin(9600);
Serial.println("Sortowanie");
int n=0, np1=0; //Zmienna n i n plus 1
//Pokazujemy wartości przed sortowaniem
wyswietl();
  for (int p=0; p<wT-1; p++)
   for (int w=0; w < wT-1;w++) {
     n=  tablicaA[w];
     np1=tablicaA[w+1];
     if (n>np1) { //n>np1 lub n<np1
         tablicaA[w]=np1;
         tablicaA[w+1]=n;
       }
    }
wyswietl();
}

void wyswietl(){
  for (int i=0; i < wT; i++)
  {
   Serial.print(tablicaA[i]);
   Serial.print("|");
  }
Serial.println("");
}

void loop() {
}
//---
				
			
				
					// Program generuje n losowych wartości temperatury w zakresie od 15 do 25 C
// i wyświetla je w jednej linii a poniżej podaje średnią temperatur 
void setup() {
Serial.begin(9600);
Serial.println(" ");
int n=5; //Liczba temperatur
double temperatury[n]; //double temperatury [] = {15.3, 16.9, 19.2, 20.1, 21.7};
double suma=0.0; 
double srednia=0.0;

//Losowanie temperatur
randomSeed(analogRead(A0));
  //Inicjalizacja generatora liczb losowych z wykorzystaniem nieustalonego sygnału na wejściu nr 0
  for (int i=0; i< n; i++) temperatury[i] = random(150,250)/10.0; //Odz 15 do 25, ale chcemy mieć np. 0.2 
  
  for (int x = 0; x < n; x++) {
      Serial.print(temperatury[x]); //Wyświetlanie temperatur
      Serial.print("|");
      suma=suma+temperatury[x];
  }
srednia=suma/n;
Serial.print("Średnia wartość temparatury w tym okresie to: ");
Serial.println(srednia);
}

void loop() {
}
				
			
				
					// Program generuje n losowych wartości temperatury w zakresie od 15 do 25 C
// i wyświetla je w jednej linii a następnie podaje wartość !!! minimalną !!! temperatur
void setup() {
Serial.begin(9600);
Serial.println(" ");
int n=5; //Liczba temperatur
double temperatury[n]; //double temperatury [] = {15.3, 16.9, 19.2, 20.1, 21.7};
double minimumT=1000.0;//Minimalna temperatura

//Losowanie temperatur
randomSeed(analogRead(A0));
  //Inicjalizacja generatora liczb losowych z wykorzystaniem nieustalonego sygnału na wejściu nr 0
  for (int i=0; i < n; i++) temperatury[i] = random(150,250)/10.0; //Odz 15 do 25, ale chcemy mieć np. 0.2

  for (int x = 0; x < n; x++) {
      Serial.print(temperatury[x]); //Wyświetlanie temperatur
      Serial.print("|");
      if (temperatury[x]<minimumT) minimumT=temperatury[x];
  }
Serial.print("Minimalna wartość temparatury w tym okresie to: ");
Serial.println(minimumT);
}

void loop() {
}
				
			
				
					//Program wyznacza liczby doskonałe w podanym zakresie 
//Liczba jest doskonała jeżeli jest ona równa sumie jej dzielników naturalnych
void setup() {
Serial.begin(9600);
int zakres = 500;//Szukamy liczb doskonałych w zakresie od 2 do 500
int sumaDN=0; //sumaDzielnikowNaturalnych

  for (int kandydat=1; kandydat<= zakres; kandydat++) //Szukamy kandydatów na liczbę doskonałą w całym zakresie od 0 do 500
  {
    //Serial.print("Sprawdzam: ");
    //Serial.println(kandydat);
    sumaDN=0;
    for (int dzielnik=1; dzielnik < kandydat; dzielnik++)
    {
      if (kandydat % dzielnik ==0) sumaDN=sumaDN + dzielnik;       
    }
    if (kandydat==sumaDN) Serial.println(sumaDN);
  }
  Serial.println("Skończyłem sprawdzać");
}

void loop() {
}
				
			
				
					// Program do liczenia wartości funkcji i rysowania wykresów
// Funkcja np: y=2x^2+x+1
// Dziedzina x(0;200)
//int x=0, y1=0, y2=0;//Zmienna int dla Arduino UNO przechowa wartości tylko do 32767
long x=0, y1=0, y2=0; //Sprawdź co się stanie jak będzie tu int a nie long

void setup() {
Serial.begin(9600);
}

void loop() {
  if (x<=20000) {  
    y1=2*x*x+x+100; //y1=2*x^2+x+1; // y1=2*pow(x,2)*x+1;
    y2=3*x*x+x+1; 
    Serial.print(y1);
    Serial.print(",");
    Serial.print(y2);
    Serial.print(",");
    Serial.println(y1*1.5);
    x++;
    delay(100);
  }
}
				
			
				
					//Program do wyznaczania liczb pierwszych w podanym zakresie n (wersja z for)
void setup() {
int maks=500;//Górna granica zbioru
Serial.begin(9600);
Serial.println("Program do wyszukiwania liczby pierwszej");
bool flaga = false; //Flaga informująca czy udało się podzielić liczbęTestowaną bez reszty

    for (int liczbaTestowana = 2;liczbaTestowana <= maks; liczbaTestowana++)
    {
      Serial.print("Sprawdzam liczbę nr: ");
      Serial.print(liczbaTestowana);
      
      flaga = false;//Zakłądamy na razie, że nie wystąpiło dzielenie bez reszty
      //Test na liczbę pierwszą tj. dzielenie bez reszty dla wyrazów od 2 do liczbaTestowana-1
      for (int n=2; n < liczbaTestowana; n++)
      { 
        if (liczbaTestowana % n == 0) flaga = 1; //Jeżeli flaga jest = 1 to testowanaLiczba nie jest liczbą pierwszą
      }
      if (flaga==0) Serial.println(" to jest liczba pierwsza");
        else Serial.println(" to nie jest liczba pierwsza");
    }
}

void loop() {
}
				
			
				
					//Program do wyznaczania liczb pierwszych w podanym zakresie n (wesja z while)
void setup() {
int maks=500;//Górna granica zbioru
Serial.begin(9600);
Serial.println("Program do wyszukiwania liczby pierwszej");
bool flaga = false; //Flaga informująca czy udało się podzielić liczbęTestowaną bez reszty

    for (int liczbaTestowana = 2;liczbaTestowana <= maks; liczbaTestowana++)
    {
      Serial.print("Sprawdzam liczbę nr: ");
      Serial.print(liczbaTestowana);
      
      flaga = false;//Zakładamy na razie, że nie wystąpiło dzielenie bez reszty
      //Test na liczbę pierwszą tj. dzielenie bez reszty dla wyrazów od 2 do liczbaTestowana-1
      int n=2;
      while((flaga==false)&&(n<liczbaTestowana))
      { 
        if (liczbaTestowana % n == 0) flaga = true; //Jeżeli flaga jest = 1 to testowanaLiczba nie jest liczbą pierwszą
        n++;
      }
      
      if (flaga==false) Serial.println(" to jest liczba pierwsza");
        else Serial.println(" to nie jest liczba pierwsza");
    }
}

void loop() {
}
				
			
				
					// Program do komunikacji Arduino z PC i sterowania diodą itp.
String komenda ="";
bool flaga=0;

void setup() {
   pinMode(13,OUTPUT);
   Serial.begin(9600);
   Serial.println("Tu Arduino UNO");
}

void loop() {
  if (Serial.available()>0) {
     komenda=Serial.readStringUntil('\n');
     komenda.trim();//To kasuje znaki \n \r
     komenda.toLowerCase();
     Serial.println("Otrzymałem: " + komenda);     
     //Jeżeli pojawi się komunikat ledon wtedy program wykona funkcję lub jak w ym przykładzie załączy diodę
     if (komenda=="on") digitalWrite(13,HIGH);
     if (komenda=="off") digitalWrite(13,LOW);
     if (komenda=="migon") flaga=1;
     if (komenda=="migoff") flaga=0;
   }
   
   if (flaga==1) miganie();
}

void miganie()
{  //Wykonanie funkcji miganie
   digitalWrite(13,HIGH);
   delay(500);
   digitalWrite(13,LOW);
   delay(200);
}
				
			
				
					//Program do liczenia pierwiastka z podanej liczby w zakresie od 0 do 100
String komenda ="";
int arg =0; //argument
double pierwiastek = 0.0;

void setup() {
   Serial.begin(9600);
   Serial.println("Tu Arduino UNO");
}

void loop() {
  if (Serial.available() > 0) {
     komenda=Serial.readStringUntil('\n');
     komenda.trim();//To kasuje znaki \n \r
     Serial.println("Otrzymałem: " + komenda);      
     arg=komenda.toInt(); //tu masz odebrany tekst jest już jako int     
     if (arg>=0 && arg<=100) {         //&& to operator AND
     	pierwiastek=sqrt(arg);//pow(arg,0.5); //Pierwiastkowanie sqrt lub potęgowanie, ale potęga 0.5   
     	Serial.print("Pierwiastek to: ");          
     	Serial.println(pierwiastek);          
     }
     else Serial.println("Wartość spoza zakresu");    
   }   
}
				
			

© Politechnika Śląska

Polityka prywatności

Całkowitą odpowiedzialność za poprawność, aktualność i zgodność z przepisami prawa materiałów publikowanych za pośrednictwem serwisu internetowego Politechniki Śląskiej ponoszą ich autorzy - jednostki organizacyjne, w których materiały informacyjne wytworzono. Prowadzenie: Centrum Informatyczne Politechniki Śląskiej (www@polsl.pl)

Deklaracja dostępności

„E-Politechnika Śląska - utworzenie platformy elektronicznych usług publicznych Politechniki Śląskiej”

Fundusze Europejskie
Fundusze Europejskie
Fundusze Europejskie
Fundusze Europejskie