Змінні
Тобто на самому примітивному рівні змінна - це місце(коробка) для збереження. Звісно що коробок таких може бути багато, а їх треба якось розрізняти. Тому коробки ці мають імена. І зазвичай імена ми даєм такі, що натякають/відображають вміст коробки. В маленьких програмах імена можуть бути маленькими. Наприклад ми знатимемо що в змінній a буде зберігатися кількість дверей, а в змінній b буде зберігатися кількість вікон, просто запам'ятаємо навіть без асоціації. Чи наприклад w-ширина, а h-висота. Та коли програма велика і там є не лише вікна та двері, то з літерою w звісно все ще може бути асоціація що то ширина. Але ширина чого? Тому не слід економити літери в назві змінних. З імені змінної має бути видно для чого вона призначена.
Якщо згадати старі часи коли ходили паперові листи, то Вам не слід було знати де фізично живе адресат. Ви писали адресу на листі і листоноша доставляв листа куди слід.
Тут те ж саме a=7 ніби відправити 7 адресату якогоназвали а. А якщо написати b=a то це значить треба дістати від а (те що там лежить) і відправити до b.
Далі все залежить від того, що ми збираємося зберігати у змінній. За аналогією коробки можуть бути великими, щоб вмістити слона, чи малими, щоб вмістити мишу.
Покажу це на прикладі С/С++
char c; // збереження одного символа, або числа від -128 до 127
short s; // збереження цілого числа від -32'768 до 3'2767
int n; // збереження цілого числа від -2'147'483'648 до 2'147'483'647
float f; // дійсне число 1/3=0.333333 6-7 значущих цифр
double d; // дійсне число 1/3=0.0.333333333333333 15-16 значущих цифр
long double // дійсне число 1/3=0.0.333333333333333333 18-19 значущих цифр
Але ці дані відрізняються в залежності від архітектури комп'ютера і компілятора.
Якщо заглибитися у змінні ще глибше, то в різних мовах поводження зі змінними сильно відрізняється.
Головні відмінності
Критерій | ✔необхідне | ❌не є необхідним |
---|---|---|
Оголошення змінних до їх використання | C/C++, Java, C#, Dart | Python, JavaScript, Ruby |
Обов'язкове вказування типу змінної | C/C++, Java, C#, Dart | Python, JavaScript, Ruby |
Динамічна типізація (тип змінної може змінюватися) | Python, JavaScript, Ruby | C/C++, Java, C#, Dart |
Автотипізація (type inference) | C++ (з auto ), C# (з var ), Dart | C, Java |
Оголошення констант | C/C++, Java, C#, Dart, JavaScript (з const ) | Python, PHP, Ruby |
В школі я вчив Basic, тоді були комп'ютери без операційних систем - Basic там була OS))))
І коли я хотів скористатися змінноюю - і я писав,
x=4
x=4.7
але для тексту x$ = "basic"
- бо це була текстова змінна
перед присвоюванням писати let x=4
можна було, але let
було не обов'язковим
Після імені змінної, спеціальним символом, вказувався тип, але змінні a
, a#
, a%
, a$
були різні змінні - у них різні імена, хоч і всі звуться а
. Лиш а
та а!
було одне і те ж ім'я
причому змінна
a$
ніде не оголошена, не ініціалізована, взагалі ніде не з'являлася а print
її виводить.
Тобто в мові С слід оголошувати змінну до використання, а тип змінної на необхідно вказувати при оголошенні.
На противагу цьому в Пайтоні змінну можна брати і використовувати, причому на ходу міняти її тип - динамічна типізація.
=
Особливу увагу слід звернути на символ =
. В математиці це знак рівності, тобто він стверджує що ліва частина рівна правій.
Що ж тоді означає a=a+1
? З точки зору математики це неправильна рівність бо не може число бути більшим на 1 за самого себе.
Але в програмуванні це 'не стверджування рівності', а дія 'присвоїти значення'.
a ← a + 1 - в псевдокодах
a := a + 1 - в мові Pascal
Дивні ці змінні
Якщо виконати дію 0.1 + 0.2 скільки буде в результаті?
0.1 + 0.2 ≠ 0.3!!!
А скільки буде якщо 120 * 3?
120 * 3 ≠ 360!!!
120 * 3 = 104!!!
І дива такі трапляються - можна поки не розуміти чому це так, але слід запам'ятати. Про це пізніше.
Адже і так вийшов за рамки домашнього завдання.
а питання було
Що таке змінні і для чого вони використовуються?
Перейду до наступного підпункту
Мова Dart
В завдання ясно сказано призначити - тому спочатку виконаю його на.. на мові Dart, як кілька днів тому почав вивчати.
void main()
{
String email = '[email protected]'; // Зміна для збереження email
String phone = '+380 (XXX) 123-45-67'; // Зміна для збереження номера телефону
String working_hours = '8:00 - 17:00'; // Зміна для збереження робочих годин
double price_steem = 0.17; // Зміна для збереження ціни Steem
int age = 10; // Зміна для збереження віку
print('Email: $email');
print('Phone: $phone');
print('Working Hours: $working_hours');
print('Price Steem: $price_steem');
print('Age: $age');
}
Можна відразу явно не вказувати тип змінних, а вказати тип 'var' - тоді компілятор автоматично його визначить на основі даних які туди вносяться.
але
var age = 10;
age = 7.8; // тут буде помилка - тип змінної визначився
// як int (з числа 10) і перевизначитися вже не може
Мова Python
А на Python навіть 'var' писати не треба
Про Python я знаю мало, лиш те що є така мова. Та пару рядків коду було сам написав.
Серед усих IDE найбільше сподобалося https://thonny.org/ - рекомендую.
на Python це завдання виконати дуже просто
myemail = '[email protected]'
myphone = '+380 (XXX) 123-45-67'
working_hours = '8:00 - 17:00'
price_steem = 17
price_steem = 0.17
age = 10
Тип змінних все таки є, просто його не треба вказувати, він визнаається/перевизначаєтсья сам в момент присвоєння/переприсвоювання.
age = 10;
age = 7.8; // А тут помилки вже не буде - тип перевизначився
Програма на мові Python величиною в один рядок викликає у мене і подив і захоплення і непорозуміння.
Я звик писати код традиційно, алгоритмом, рядок за рядком - а тут все в один рядок.
Запрошую @bazer, @golden-rain, @luxalok
About me
Нажаль, кодування не те щоб не для мого розуму, але не для мого темпераменту точно. Вже через 5 хвилин починаю томитись від смертної нудьги. А це для мене дуже важливо – щоб мені був цікавим сам процес.
Тому, спробувавши раніше кілька разів вивчати, дійшов до висновку, що мені краще більше й не пробувати.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
А мені нудно не буває)) - я вирішив мізки прокачувати щоб не застарювалися..чи не застоювалися...
там поки легкі завдання то я й запрсив)))
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Ця публікація була підтримана командою 7 через @httr4life. Наша команда підтримує вміст, який додає спільноті.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Exactly the use of the variables vary with different languages. Moreover some languages are loosely typed and some languages are strongly typed.
Wow you have started using dart to explain the questions I think you took a start of learning dart from flutter mobile development.
Best of luck 🤞
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
So I made examples in the Dart language to get used to the syntax. By the way, I really liked the color theme https://dartpad.dev/
I wanted not only to write homework, but also to practice Python/Dart languages, which I have not learned much
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Yeah dart and flutter offers amazing interface and other features. You are welcome to learn much more.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Your post has been rewarded by the Seven Team.
Support partner witnesses
We are the hope!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
От я б залюбки прийняла участь, але ж розумію лише базу і то на серверах вчилася ☺️
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
так, будь ласка - тут урок №2 легший ніж в мене, гугл перекладач все перекладає))
треба вже третій урок готувати....а ще сам приймаю участь, бо цікаво дещо вивчити - а потім мотивація зникне
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
У мене і компа немає, лише планшет ☺️
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
а копм для чого)) зараз вся діяльність у веб браузері, я от вчора почав про гугл таблиці писати домашню роботу))) - ексель в інтернеті.... зараз продовжу
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Не уговорил, бо я навіть слів таких не знаю ☺️. Аби що про тваринок, про кулінарію, про хоббі. Оооо
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Ну ось наприклад https://steemit.com/trending/gastronomy-s20w2
минулого разу там про салати було))) - почитав трохи - але самому їх готувати руки не дійшли, зараз нема коли навіть почитати про що вони там
правду сказати - мені сподобалося Steemit Engagement Challenge
там багато де можна прийняти участь
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Колись був вже такого плану конкурс, академія чи як, не пам'ятаю. Приймала участь та навіть щось там виграла😅. А це Steemit Engagement Challenge, дивлюся знову
школа. ООО, приму. То по ходу писати один пост на тиждень по тематиці кулінарії, наприклад, так? Там переврд іспанський, я майже нічого не зрозуміла😅, переклад поганий
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Так я теж намучився зі своїм першим уроком, я ж не літератор - а перше моє завдання було суцільна писанина. І мені просто важко було її оцінити.
А ще я помітив що коли гарна англійська - то й переклад зрозумілий більш менш. А коли мабуть надають відповіді на нерідній англійській(поганій англійській) - то переклад суцільна мішанина слів, ніби в тему - а оцінити важко. Ну то був перший раз - зробив висновки)))
А розуміти бува і на рідній мові важко - всі ці конкурси там між рядків читати треба + розпитувати)))
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Дякую за запрошення! Хай щастить у марафоні))
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit