Cześć, zaczynam swoją przygodę z programowaniem i natknąłem się na parę zadań wraz z rozwiązaniami. Niestety nie jestem w stanie zrozumieć niektórych przejść. Bardzo proszę o wytłumaczenie w jaki sposób działają poniższe programy, myślę że to lepiej pomoże mi zrozumienie programowania.
Bardzo proszę o wytłumaczenie jak działa cały program, tam gdzie są komentarze są pytania dodatkowe.
Zad1
Napisz program, który za pomocą instrukcji for znajduje największą i najmniejszą liczbę ze zbioru n wylosowanych liczb całkowitych od 0 do 99 (w zadaniu n=5) oraz oblicza średnią ze wszystkich liczb.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace pętle
{
class Program
{
static void Main(string[] args)
{
int ilosc_liczb = 5, i = 2; //dlaczego i = 2? Z czego to wynika?
double liczba, suma = 0, min, max;
Console.WriteLine("Sumujemy, max, min i średnia");
Random r = new Random(); //po co jest ten zapis?
min = Math.Round(100 * (r.NextDouble())); //czemu zapis losowania liczby pseudolosowej jest zapisany w taki sposób? Z czego to wynika?
Console.WriteLine();
Console.Write("Wylosowano liczby: " + min + ", ");
max = min;
suma = suma + max;
for (i = 2; i <= ilosc_liczb; i++)
{
liczba = Math.Round(100 *(r.NextDouble()));
if (i < ilosc_liczb)
Console.Write(liczba + " , ");
else
{
Console.Write(liczba + " , ");
Console.WriteLine();
}
if (max < liczba) max = liczba;
if (liczba < min) min = liczba;
suma = suma + liczba;
}
Console.WriteLine();
Console.WriteLine("Największa liczba to " + max + ".");
Console.WriteLine();
Console.WriteLine("Najmniejsza liczba to " + min + ".");
Console.WriteLine();
Console.WriteLine("Srednia wynosi " + suma / ilosc_liczb + ".");
Console.Read();
}
}
}
Zad 2. Napisz program wyświetlający tabliczkę mnożenia dla liczb od 1 do 100 (tj. 10x10) z wykorzystaniem podwójnej pętli for.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace petlre2
{
class Program
{
static void Main(string[] args)
{
int n = 10, wiersz, kolumna;
Console.WriteLine("Program wyświetla liczby 1-100");
Console.WriteLine();
for (wiersz = 1; wiersz <= n; wiersz++) //nie rozumiem jak działa podwójna pętla i nie wiem skąd program wie że wyświetlają się kolumny i wiersze, z czego to wynika?
{
for (kolumna = 1; kolumna <= n; kolumna++)
{
Console.Write(wiersz * kolumna + "\t");
}
Console.WriteLine();
}
Console.Read();
}
}
}
Zad. 3 Napisz program, który wyświetla duże litery alfabetu od A do Z i od Z do A z wykorzystaniem pętli for.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace petle3
{
class Program
{
static void Main(string[] args)
{
char znak; //czemu char akurat a nie int czy double? Czy w charze mieszczą się literki?
//Jeżeli tak to skąd char zna alfabet aby pokazać je po kolei?
Console.WriteLine("Program wyświetla duże litery A-Z i Z-A");
Console.WriteLine();
for (znak = 'A'; znak <= 'Z'; znak++)
{
if (znak < 'Z')
Console.Write(znak + ".");
else
{
Console.Write(znak + ".");
Console.WriteLine();
}
}
for (znak = 'Z'; znak >= 'A'; znak--)
{
if (znak > 'A')
Console.Write(znak + ".");
else
{
Console.Write(znak + ".");
Console.WriteLine();
}
}
Console.Read();
}
}
}
Zad4. Wiedząc, że 1233 = 122+332, napisz program, który znajduje wszystkie liczby z przedziału od 1000 do 9999 spełniające taką ciekawą zależność. Program dodatkowo liczy ich ilość.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Zad4
{
class Program
{
static void Main(string[] args)
{
int j = 0;
for (int i = 1000; i < 10000; i++)
{
int pdc = i/100; //-pierwsze 2 cyfry, ale skąd wiadomo że tak? Co dokładnie oznacza ten zapis
int odc = i%100;// tak smao tutaj 2 ostatnie cyfry, skąd o tym wiemy?
if (pdc * pdc + odc * odc == i)
{
Console.WriteLine(i + "=" + pdc + "*" + pdc + "+" + odc + "*" + odc);
++j; //jakbym zapisał j++ to byłoby to samo? Jeżeli nie to czym się to różni?
//w jaki sposób to podlicza te liczby? skąd program wie że akurat są dwie a nie 3 czy 4?
}
}
Console.WriteLine();
Console.WriteLine("Znaleziono " + j + "liczby.");
Console.Read();
}
}
}
Z góry bardzo dziękuję za pomoc!