Compare commits

..

2 Commits

Author SHA1 Message Date
Костя f2cb6cf6dd add new comments 2025-06-17 13:46:50 +03:00
Костя 25a4e7d988 add comments 2025-06-10 18:47:11 +03:00
6 changed files with 129 additions and 117 deletions

22
.vscode/launch.json vendored
View File

@ -1,22 +0,0 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"skipFiles": [
"<node_internals>/**"
],
"program": "${workspaceFolder}\\src\\index.ts",
"outFiles": [
"${workspaceFolder}/**/*.js"
],
"preLaunchTask": "build_backend"
}
]
}

12
.vscode/tasks.json vendored
View File

@ -1,12 +0,0 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "build_backend",
"type": "npm",
"script": "build",
"path": "/",
"problemMatcher": []
}
]
}

View File

@ -1,71 +1,137 @@
//*****************************************************************
//#################### Обучение ЦИКЛАМ ##########################
// ########################## УЧЕБНЫЙ ТЕКСТ ############################################################
//******************************************************************************************************
//lesson 1.5.1 SUM OF NUMBERS interface People {
name: string;
age: number | undefined;
}
//## ЗАДАЧА ## let people01: People = {
//Если выписать все натуральные числа меньше 10, кратные 3, или 5, то получим 3, 5, 6 и 9. name: "Kostya",
//Сумма этих чисел будет равна 23. age: undefined
//Напишите программу, которая выводит на экран сумму всех чисел меньше 1000, кратных 3, или 5. };
//#1 натуральное число от 1 до 10 (числа которые let people02: People = {
//#2 Натуральные числа (от лат. naturalis — «естественный») — числа, возникающие естественным образом при счёте. Примеры: 1, 2, 3, 4, 5, 6, 7 и) name: "Yura",
//#3 Числа, кратные 3, или 5 — это числа, которые делятся на 3 или на 5 без остатка. age: 32
}
people01.age = 60;
// console.log(people01);
// console.log(JSON.stringify(people01));
// console.log(people01.age);
console.log(`${people01.name} имеет возраст ${people01?.age ?? '40'}`); //Kostya --- 60
console.log(`${people02.name} имеет возраст ${people02?.age ?? '40'}`); //Yura --- 32
console.log(`${people01.name} имеет возраст ${people02?.age ?? '40'}`);
// && - AND interface PeopleLocation extends People {
// || - OR location: string;
// ! }
/*
function analise (chislo: number){
return chislo % 3 ==0 || chislo % 5 ==0;
}
let p = analise(3); let peopleLocation01: PeopleLocation = {
name: "djdf",
age: 42342,
location: "dafdf"
}
class ProcessingPeoples implements PeopleLocation {
name: string;
age: number | undefined;
location: string = '';
let a = 0; constructor(name: string){
for(let index = 1; index < 1000; ){ this.name = name;
}
if (analise(index)){ }
//console.log(index);
a = a + index; let str: string = 'test text';
let proc1 = new ProcessingPeoples(str)
console.log(proc1)
proc1.name = 'new test'
console.log(proc1)
class ProcessingPeoplesExt extends ProcessingPeoples {
isActive: boolean = false;
constructor(name: string, isActive: boolean){
super(name);
if(isActive) {
this.location = 'Gorkyi street';
} }
index = index + 1; else{
//break //оператор прерывания цикла (сразуже заканчивает цикл) this.location = '';
}
console.log(`сумма: ${a}`);
*/
//найти формулу (в инете) арифметич. прогрессии и как эту формулу реализовать в коде
// найти как узнать А-n число. "Это число А-n" можно получить циклом в обратной последовательности от 1000 и идти к меньшему и найти первый попавшийся элемент.
/*
Формула n-го члена арифметической прогрессии: an = a1 + d(n 1), где:
a1 первый член прогрессии;
d разность между любыми двумя соседними членами;
n порядковый номер члена прогрессии.
С помощью этой формулы можно найти любой член арифметической прогрессии, если известны её первый член и разность.
Формула для нахождения суммы первых n членов арифметической прогрессии: Sn = (a1 + an)n/2, где n число членов последовательности.
*/
function analise (chislo: number){
return chislo % 3 ==0 || chislo % 5 ==0;
}
let p = analise(3);
let a = 0;
for(let index = 1000; index = 1; ){ // обратный цикл от 1000 до 1, для поиска первого элемента!
if (analise(index)){
//console.log(index);
a = a + index;
} }
index = index + 1; }
//break //оператор прерывания цикла (сразуже заканчивает цикл) }
}
console.log(`сумма: ${a}`); let a: ProcessingPeoples = new ProcessingPeoplesExt("Vasya", true);
class Duck {
type: string = 'Duck';
weight: number = 0;
log(){
console.log("I'm simple duck");
}
}
let Utka: Duck = new Duck();
Utka.log();
interface Eateable {
eat(): void; //пустота, функция ничего не принимает и не возвращает.
}
class GreyDuck extends Duck implements Eateable{ //наследоваться можно от другого класса только один раз, но!! реализация интерфейсов может быть не ограниченно количество раз
constructor() {
super(); // в данном примере, если используется конструктор и при этом этот конструктор наслеедуется от родителя, то мы обязаны вызывать конструктор родителя.
this.type = 'GreyDuck'
}
override log(){
console.log("I'm grey duck");
}
eat(){
console.log("I'm eat");
}
}
class RedDuck extends Duck implements Eateable {
constructor() {
super();
this.type = 'RedDuck'
console.log(`Object created ${this.type}`)
}
eat(): void {
console.log("I'm eat");
}
override log(){
console.log("I'm red duck");
}
}
let duck1 = new RedDuck();
let duck2 = new GreyDuck();
let array: Eateable[] = [
duck1,
duck2
];
let result = array[0]; //мы можем проверить содержание массива с именем array. в квадратных скобках мы указали ноль = это первый эелемент массива.
console.log(`результат содержимого массива${JSON.stringify(result)}`); //вывод на экран
for (let item of array) {
item.eat();
}
let array2: Duck[] = [
duck2,
duck1
];
for (let item of array2) {
item.log();
}
array2.filter(item => "eat" in item); //тестирование не относится к тексту выше

View File

@ -1,19 +0,0 @@
import readline from 'node:readline';
export function ConsoleInput(text: string): string {
let result: string = '';
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
rl.question('Enter something:', value => {
result = value;
rl.close;
});
return result;
}

View File

@ -21,7 +21,6 @@
"strict": true, /* Enable all strict type-checking options. */ "strict": true, /* Enable all strict type-checking options. */
"noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */
/* Completeness */ /* Completeness */
"skipLibCheck": true, /* Skip type checking all .d.ts files. */ "skipLibCheck": true /* Skip type checking all .d.ts files. */
"sourceMap": true
} }
} }

File diff suppressed because one or more lines are too long