Compare commits
2 Commits
Lesson_1_5
...
master
Author | SHA1 | Date |
---|---|---|
|
f2cb6cf6dd | |
|
25a4e7d988 |
|
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "build_backend",
|
||||
"type": "npm",
|
||||
"script": "build",
|
||||
"path": "/",
|
||||
"problemMatcher": []
|
||||
}
|
||||
]
|
||||
}
|
183
src/index.ts
183
src/index.ts
|
@ -1,56 +1,137 @@
|
|||
//*****************************************************************
|
||||
//#################### Обучение ЦИКЛАМ ##########################
|
||||
|
||||
// ########################## УЧЕБНЫЙ ТЕКСТ ############################################################
|
||||
//******************************************************************************************************
|
||||
|
||||
//lesson 1.5 SUM OF NUMBERS
|
||||
|
||||
//## ЗАДАЧА ##
|
||||
//Если выписать все натуральные числа меньше 10, кратные 3, или 5, то получим 3, 5, 6 и 9.
|
||||
//Сумма этих чисел будет равна 23.
|
||||
//Напишите программу, которая выводит на экран сумму всех чисел меньше 1000, кратных 3, или 5.
|
||||
|
||||
//#1 натуральное число от 1 до 10 (числа которые
|
||||
//#2 Натуральные числа (от лат. naturalis — «естественный») — числа, возникающие естественным образом при счёте. Примеры: 1, 2, 3, 4, 5, 6, 7 и)
|
||||
//#3 Числа, кратные 3, или 5 — это числа, которые делятся на 3 или на 5 без остатка.
|
||||
|
||||
//Реализация
|
||||
//через условие - if cделать выборку (перебор/фильтр массива) по условию, где будет кратное 3 или 5.
|
||||
//Создать массив
|
||||
//Заполнить массив через цикл for числами от 1 до 10.
|
||||
//Полученные цифры в результате выборки массива сложить и вывести результат сложения на экран.
|
||||
|
||||
// && - AND
|
||||
// || - OR
|
||||
// !
|
||||
|
||||
function analise (chislo: number){
|
||||
//let funcres = chislo;
|
||||
//console.log(`предварительное число ${chislo} = ${chislo % 3}`);
|
||||
//if (chislo / 3 == 1 || chislo / 3 == 2 || chislo / 3 == 3 || chislo / 3 == 4 || chislo / 5 == 1 ){ //пример кода статичный
|
||||
//if (chislo % 3 ==0 || chislo % 5 ==0){ //условие если переменная chislo делиться на 3 то вывод на экран и в массив
|
||||
//как нам проверить, или при каком условии мы будет считать, что число кратное тройке???
|
||||
//Признак делимости на 3: на 3 делятся только те числа, у которых сумма цифр делится на 3.
|
||||
//Пример: число 81 300 делится на 3, так как сумма его цифр 8 + 1 + 3 + 0 + 0 = 12 делится на 3.
|
||||
//Например, 15 кратно 3, так как 15 : 3 = 5 (остатка нет).
|
||||
//let array: number []= [funcres]; //массив
|
||||
//console.log(array);
|
||||
//console.log(chislo);
|
||||
|
||||
return chislo % 3 ==0 || chislo % 5 ==0;
|
||||
interface People {
|
||||
name: string;
|
||||
age: number | undefined;
|
||||
}
|
||||
let p = analise(3);
|
||||
//console.log(p);
|
||||
let a = 0;
|
||||
for(let index = 1; index < 1000; ){
|
||||
|
||||
if (analise(index)){
|
||||
//console.log(index);
|
||||
a = a + index;
|
||||
}
|
||||
index = index + 1;
|
||||
break //оператор прерывания цикла (сразуже заканчивает цикл)
|
||||
}
|
||||
console.log(`сумма: ${a}`);
|
||||
let people01: People = {
|
||||
name: "Kostya",
|
||||
age: undefined
|
||||
};
|
||||
|
||||
let people02: People = {
|
||||
name: "Yura",
|
||||
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'}`);
|
||||
|
||||
interface PeopleLocation extends People {
|
||||
location: string;
|
||||
}
|
||||
|
||||
let peopleLocation01: PeopleLocation = {
|
||||
name: "djdf",
|
||||
age: 42342,
|
||||
location: "dafdf"
|
||||
}
|
||||
class ProcessingPeoples implements PeopleLocation {
|
||||
name: string;
|
||||
age: number | undefined;
|
||||
location: string = '';
|
||||
|
||||
constructor(name: string){
|
||||
this.name = name;
|
||||
}
|
||||
}
|
||||
|
||||
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';
|
||||
}
|
||||
else{
|
||||
this.location = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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); //тестирование не относится к тексту выше
|
||||
|
||||
//найти формулу (в инете) арифметич. прогрессии и как эту формулу реализовать в коде
|
||||
// найти как узнать А-n число. "Это число А-n" можно получить циклом в обратной последовательности от 1000 и идти к.
|
||||
|
|
19
src/input.ts
19
src/input.ts
|
@ -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;
|
||||
}
|
||||
|
|
@ -21,7 +21,6 @@
|
|||
"strict": true, /* Enable all strict type-checking options. */
|
||||
"noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */
|
||||
/* Completeness */
|
||||
"skipLibCheck": true, /* Skip type checking all .d.ts files. */
|
||||
"sourceMap": true
|
||||
"skipLibCheck": true /* Skip type checking all .d.ts files. */
|
||||
}
|
||||
}
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue