Compare commits

..

4 Commits

Author SHA1 Message Date
DESKTOP-8HAFCLV\Yugr 0f46a0936e Lesson 4 complete 2025-06-27 12:46:02 +04:00
Костя 7f67cd98ca add new value for chisloP 2025-06-26 20:39:31 +03:00
DESKTOP-8HAFCLV\Yugr 16cc913cad Lesson 1.2 complete 2025-06-26 21:11:50 +04:00
DESKTOP-8HAFCLV\Yugr 4f1310bbcf Added input function 2025-06-26 16:31:26 +04:00
3 changed files with 38 additions and 128 deletions

View File

@ -1,137 +1,28 @@
function DrawLine(count: number, countP: number){
const minimalString = '*';
const minimalP = ' ';
// ########################## УЧЕБНЫЙ ТЕКСТ ############################################################
//******************************************************************************************************
interface People {
name: string;
age: number | undefined;
console.log(minimalP.repeat(countP)+minimalString.repeat(count));
}
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;
function DrawTriangle(size: number, offset: number){
for(let index = 1; index <= size; index++){
DrawLine(index * 2 - 1, size - index + offset);
}
}
let str: string = 'test text';
let proc1 = new ProcessingPeoples(str)
console.log(proc1)
proc1.name = 'new test'
console.log(proc1)
let chisloN: number = 6;
class ProcessingPeoplesExt extends ProcessingPeoples {
isActive: boolean = false;
constructor(name: string, isActive: boolean){
super(name);
if(isActive) {
this.location = 'Gorkyi street';
}
else{
this.location = '';
}
}
for(let i = 1; i <= chisloN; i++){
DrawTriangle(i, chisloN - i);
}
let a: ProcessingPeoples = new ProcessingPeoplesExt("Vasya", true);
//i++ => i = i + 1
//i-- => i = i - 1
//--i => i = i - 1
class Duck {
type: string = 'Duck';
weight: number = 0;
log(){
console.log("I'm simple duck");
}
}
// for(let i = 0; i < count; i++){
// str = str + '*' // i = 0 => str = '*' // i == 1 => '**' // i = 2 => '***'
// }
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); //тестирование не относится к тексту выше

19
src/input.ts Normal file
View File

@ -0,0 +1,19 @@
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;
}

File diff suppressed because one or more lines are too long