Skip to content

hatterfix/gb_code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

gb_code

Geekbrains study examples

### C#

Примечание:

Установка в Ubuntu 22.04

sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-6.0 aspnetcore-runtime-6.0
  • Инициализировать dotnet-консоль (стартер-пак структуры) в папке с проектом:
dotnet new console
  • Запустить проект в консоли:
dotnet run

Базовые команды:

  • Вывод данных:
Console.Write("something");
  • Считать данные c записью в переменную - Метод ReadLine (по-умолчанию возвращает переменную типа string):
Console.Write("something");
string username = Console.ReadLine();
  • Объявить целочисленную переменную:
int intA = 7
  • Объявить тип вещественного числа для переменной (например, для деления с остатком):
double intA = 20 ;
double intB = 3 ;
Console.Write(intA / intB);
  • Случайные числа (возвращает целое число от min до max , или от min до max-1):
new Random().Next(min,max);

double intA = new Random().Next(1, 10) ;
double intB = new Random().Next(1, 10) ;
Console.Write(intA / intB);
  • Автоеревод значения переменной в нижний регистр (например, если вводим АНя, вместо аня)
if(user.ToLower() == "аня")
  • Очистить консоль перед каждым запуском:
Console.Clear() ;
  • Добавить отступ от левого и от верхнего края:
Console.SetCursorPosition(x,y) ;
  • Методы конвертирования типа значений в integer:
Не обработает пустую строку
 int.Parse()
Обработает пустую строку
Convert.ToInt32()
Пример конвертации типа переменной в ReadLine():
int number = Convert.ToInt32(Console.ReadLine()) ;
  • Множественные условия в цикле (else if):

Конструкция:

if (... something ...)
(
... make this .... ;
)
else if (...1st  other some ... ) 
(
... make that ... ;
)
else if (... 2nd other some ... ) 
( 
... make that ... ;
)
else 
(
... make different ... ;
)
  • Цикл for:

Конструкция:

for (int i = -N ; i <= N ; i++)
{
Console.WriteLine(i);
}
  • Остаток от деления = символ % ( в примере ниже - остаток от деления на 10)
if ( 99 < number && number < 1000) 
{
    Console.WriteLine($"{number%10} - последняя цифра в числе {number}") ;
}
  • Вывод с отступом в табуляцию "\t":
{
    Console.Write(i + "\t");

}
  • Функция Math.Abs - возвращает абсолютное значение от числа
int number = Math.Abs(Convert.ToInt32(...)
  • Структура функции:
         _тип_данных_    _название_функции_  (_принимаемые параметры_)

	{
          _Тело функции
	}
//Функция берет заданное число, считает сумму от 1 до числа и выводит результат

int SumNumbers(int a)
{
	int sum = 0 ;
	
	for (int i =1; i <= a ; i++)
	{
	sum += i;
	}

	return sum ; //оператор перехода - принудительно завершает функцию и возвращает значение 
}
  • Синтаксис переменных для обработки массивов включает квадратные скобки: int[]
int[] newArray = new int[sizeArray] ; // массив newArray обрабатывает  одну ячкйку памяти со значениями переменной sizeArray
  • Пример функции ддя заполнения массива случайными числами
// Определяет размерность массива, и диапазон значений,  начальный и конечный элементы для Random

int[] generateArray (int sizeArray , int leftRange , int rightRange)
{
int[] newArray = new int[sizeArray] ;
Random rand = new Random() ;

// Цикл для заполнения массива случайными числами из указанного диапазона

for (int i = 0 ; i < newArray.Length ; i++)
    {
        newArray[i] = rand.Next(leftRange , rightRange + 1) ; // т к rand не обработает правое значение диапазона
    }
    return newArray ;
}

// Вызов функции:

int[] array = generateArray(10 , -9 ,9) ;

  • Оператор условного null-значения ( ? )
string? ...
// Позволяет, например, обработать в коде null-строку, не выводя ошибок
  • Модификаторы:

Позволяют возвращать несколько значений из функции. Могут вызываться сразу внутри функций.

Фактически передают значимый тип данных по ссылке:

void sumOfNegativeAndPositive(int[] array, out int sumPositive, out int sumNegative)

// Для обработки внутри функции, значения модификаторов должны быть явно объявлены:
    sumPositive = 0 ;
    sumNegative = 0 ;

// Вызов функции:

 sumOfNegativeAndPositive(array, out int sumP, out int sumN);


System.Console.WriteLine($"\nСумма положительных: {sumP}") ;
System.Console.WriteLine($"\nСумма отрицательных: {sumN}") ;
### Python

Примечание:

Python - язык с динамически определяемыми типами данных - сам их оопрелеляет при запуске кода - это влияет на его скорость

Запуск кода а cli :

python3 tmp.py

Запуск кода а VSCode - Ctrl + F5 / Run & debug (gui) :

Переменные с объявленным и пустым (none) и строковым (" " ; ' ') значением: в Python нет разделения на тип данных 'char' и "string"

n = 6
n = none
n = "somestring"
n = 'something'
  • Интерполяция - получение сложной строки из нескольких простых: Конструкцтя f "{var1} - (var2) - ..." позволяет выводить данные внутри переменных:

Пример:

a = 6
b = 7.42
c = "somestring"

print (f"{a} - {b} - {c}")

Ввод данных (по-умолчанию тип string):

#a = input()
#a = input("Введите строку: ")
a = int(input("Введите число: "))
print(a)

Приведение типов данных:

c = 5.86
print(c)
#меняем тип переменной на int
n = int(c)
print(n)

#Подсветить типы двнных (type) в выводе:
print(type(c))
print(type(n))

Округление по числу знаков после запятой round(число, кол-во знаеов после ,)

a = 7.86672162
b = 5.42767261

print(round(a*b, 3))
  • Условия if / then / else - управляющие конструкции.
  • Сложные условия описываются логическими И - and / ИЛИ - or

Пример:

username = input('Введите имя: ')

if username == 'Маша' or username == 'Mawa':
    print("Ура, это же МАША!")

elif username == 'Марина':
    print("Я так ждала Вас, Марина!")

elif username == 'Ильнар':
    print('Ильнар - топ)')

else:
    print('Привет, ', username)

Цикл while - выполняем до тех пор пока:

Пример:

n = 423
sum = 0

while n > 0:
    x=n % 10
    sum = sum + x
    n = n // 10
print("Сумма элементов числа = " , sum)

Прерывание цикла - break

Пример:

i = 6
while i < 5:
    if i == 3:
        break
    i = i + 1
else:
    print("Пожалуй")
    print('хватит )')

print(i)
  • Метод флажка flag = true / false:
  • i++ (C#) это i += 1 (Python) Пример:
n = int(input("Введите число: "))
flag = True
i = 2

while flag:
     # если остаток при делении числа п на 1 равен 0
    if n % i == 0:
        flag = False
        print(i)
# делитьель числа не может превышать введенное введенное число деленое на 2
    elif i > n // 2: 
        print(n)
        flag = False
    i += 1
  • Функция range() -выводит значения в диапазоне с щагом (по-умолчанию 1)
  • Пример, вместе с вложенным циклом:
#выведет 5 строк х5 *
line =" "
for i in range(5):
    line = ""
    for j in range(5):
        line += "*"
    print(line)
  • Примеры работы со строками: больще в крайнем коммите lect_1
text = 'съешь ещё этих мягких французских булок'

print(text[1]) #ъ
print(text[len(text)-1])  #к
print(text[-5]) #6
print(text[:2]) # съ
print(text[len(text)-2:]) # ок
print(text[2:9]) # ешь ещё

Списки:

Список это +- тот же массив Задать список можно разными способами:

list_1 = [a,b,c,d] # в квадратных скобках явно
list_1 = list() # через функцию list()   

Вывод списка:

print(list_1) # выведет список с квадратными скобками и запятыми
print(*list_1) # выведет список без квадратных скобок и запятых - чистые данные
print(len(list_1)) # выведет количество элементов списка
print(list_1(-1)) # (-1) - выведет последний элемент списка (-2), предпоследний и т.д - индексация с конца.

list_1.append(91) # append добавляет элемент в конец списка
print(list_1)

list_1 = [] #создаем пустой список
for i in range(5):
    list_1.append(i)
    print(list_1)

работа со списком в цикле:

for i in list_1:
    print(i)

About

Geekbrains study examples

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published