JavaRush/Java Π±Π»ΠΎΠ³/Архив info.javarush/Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΊ лСкциям CS50: Week 1 (Π»Π΅ΠΊΡ†ΠΈΠΈ 3...
Masha
41 ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΊ лСкциям CS50: Week 1 (Π»Π΅ΠΊΡ†ΠΈΠΈ 3 ΠΈ 4)

Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΈΠ· Π³Ρ€ΡƒΠΏΠΏΡ‹ Архив info.javarush
участников
cs50 Π½Π° русском Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ Π—Π°Π΄Π°Ρ‡ΠΈ 1 Π½Π΅Π΄Π΅Π»ΠΈ

Π¦Π΅Π»ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π½Π΅Π΄Π΅Π»ΠΈ

  • ΠžΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с основными ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ Linux
  • Π˜Π·ΡƒΡ‡ΠΈΡ‚ΡŒ основной синтаксис C ΠΈ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ нСсколько Π·Π°Π΄Π°Ρ‡
  • ΠΠ°Ρ‡Π°Ρ‚ΡŒ ΠΌΡ‹ΡΠ»ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‡Π΅ =)
IDE CS50
Для выполнСния Π·Π°Π΄Π°Π½ΠΈΠΉ CS50 ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ IDE (Integrated Development Environment, ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ) Π² Β«ΠΎΠ±Π»Π°ΠΊΠ΅Β». Π§Ρ‚ΠΎΠ±Ρ‹ Сю Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, создайтС Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ edX, ΠΈ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ Π½Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ курс. ПослС этого:
1. Π—Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π½Π° cs50.io, ΠΈΠ· списка Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ edX, Π²Π²ΠΎΠ΄ΠΈΠΌ Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, ΠΆΠΌΠ΅ΠΌ Submit 2. Π’Π²ΠΎΠ΄ΠΈΠΌ Π΄Π°Π½Π½Ρ‹Π΅ своСго edX-Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°, ΠΆΠΌΠ΅ΠΌ Return to ID.CS50.NET. cs50.io 3. Π–Π΄Π΅ΠΌ: создаСтся вашС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ пространство. Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ пространство cs50 4. Π“ΠΎΡ‚ΠΎΠ²ΠΎ! cs50 ide
Командная строка ΠΈ запуск CS50 IDE
Π’ Π½ΠΈΠΆΠ½Π΅ΠΉ части ΠΎΠΊΠ½Π° CS50 IDE Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Terminal Π΅ΡΡ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΈΠ»ΠΈ панСль ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Бюда ΠΌΠΎΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ строковыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: Π²Ρ‹ смоТСтС Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ с ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌ интСрфСйсом, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ прилоТСния, ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, ΠΈΠ½ΡΡ‚Π°Π»Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ПО. Если Π²Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкой, вСроятно, Ρ‚Π°ΠΊΠΎΠΉ способ покаТСтся Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ: Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π½Π°Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΡ… тСкстом вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‰Π΅Π»ΠΊΠ°Ρ‚ΡŒ ΠΏΠΎ ΠΈΠΊΠΎΠ½ΠΊΠ°ΠΌ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌ. Π’ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠ΅Ρ€Π΅ Ρ‚Π°ΠΊ ΠΈ Π΅ΡΡ‚ΡŒ, Π·Π°Ρ‚Π΅ΠΌ ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ интСрфСйс ΠΈ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»ΠΈ. Однако командная строка Π΅ΡΡ‚ΡŒ Π²ΠΎ всСх ОБ ΠΈ Π΅Ρ‘ ΠΎΠ±ΠΎΠΆΠ°ΡŽΡ‚ Π°Π΄ΠΌΠΈΠ½Ρ‹. А всё ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ€ΠΎΠΉ Π±Π΅Π· Π½Π΅Ρ‘ Π½ΠΈΠΊΠ°ΠΊ. Π’ ΠΎΠΊΠ½Π΅ IDE Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π·Π°Π³Π°Π΄ΠΎΡ‡Π½ΡƒΡŽ строку: username:~/workspace $ Π½Π° мСстС Β«usernameΒ» Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски сгСнСрированноС (Π½Π° основС Π²Π°ΡˆΠΈΡ… рСгистрационных Π΄Π°Π½Π½Ρ‹Ρ…) имя. ΠšΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ ΠΏΠΎ ΠΎΠΊΠΎΡˆΠΊΡƒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΠΉΡ‚Π΅: update50 НаТмитС Enter. Команда просит систСму ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ. Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ строки, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ процСсс установки. НС Π·Π°ΠΊΡ€Ρ‹Π²Π°ΠΉΡ‚Π΅ CS50 IDE ΠΏΠΎΠΊΠ° Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Update complete!. ПослС этого снова появится строка ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ‚Π°, Ρ‡Ρ‚ΠΎ с вашим ΠΈΠΌΠ΅Π½Π΅ΠΌ.
Π Π°Π±ΠΎΡ‚Π° Π² IDE
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΠ°ΠΏΠΊΡƒ, Π³Π΄Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π»Π΅ΠΆΠ°Ρ‚ΡŒ ваши Ρ„Π°ΠΉΠ»Ρ‹. ΠšΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΏΠΎ ~/workspace (ваш ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³) Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ CS50 IDE, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ New Folder. ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠΉΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ Π² pset1(Ссли Π²Ρ‹ ошиблись Π² ΠΈΠΌΠ΅Π½ΠΈ, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΠΎ вашСй ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Rename). cs50 ide rename folder Π—Π°Ρ‚Π΅ΠΌ ΠΊΠ»ΠΈΠΊΠ°Π΅ΠΌ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΏΠΎ ΠΏΠ°ΠΏΠΊΠ΅ pset1, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ New File. ΠŸΠΎΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Ρ„Π°ΠΉΠ» Untilted, ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ΅ΠΌ Π΅Π³ΠΎ Π² hello.txt. cs50 ide Π”Π²Π°ΠΆΠ΄Ρ‹ ΠΊΠ»ΠΈΠΊΠ½Π΅Ρ‚Π΅ ΠΏΠΎ hello.txt. Π’ CS50 IDE справа Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ ΠΈ ΠΏΠΎΠ»Π΅, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ. Если Π²Ρ‹ это сдСлали, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΠ²ΠΈΠ²ΡˆΡƒΡŽΡΡ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»Π° Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ символ Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠΈ (*) β€” ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π² Ρ„Π°ΠΉΠ» Π±Ρ‹Π»ΠΈ внСсСны, Π½ΠΎ Π½Π΅ сохранСны, измСнСния. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΊ лСкциям CS50: Week 1 (Π»Π΅ΠΊΡ†ΠΈΠΈ 3 ΠΈ 4) - 1 Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ», зайдя Π² мСню *File > Save ΠΈΠ»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ клавиш command + S (Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π°Ρ… Apple) ΠΈΠ»ΠΈ Ctrl + S (Π½Π° ПК). Π—Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΡ‡Π΅Π·Π½ΡƒΡ‚ΡŒ. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, Π»Π΅ΠΆΠΈΡ‚ Π»ΠΈ Ρ„Π°ΠΉΠ» Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½. Π‘Π΄Π΅Π»Π°Π΅ΠΌ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΏΠΎΡ€Π° ΠΊ Π½Π΅ΠΉ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ°Ρ‚ΡŒ:). Как ΠΈ Ρ€Π°Π½Π΅Π΅, активная строка Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ выглядит Ρ‚Π°ΠΊ: username:~/workspace $ Workspace β€” тСкущая рабочая дирСктория (Ρ‚Π°, Ρ‡Ρ‚ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ срСдС). Вильда (~) ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΊΠΎΡ€Π½Π΅Π²ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ (Π² Π½Π΅ΠΉ Π»Π΅ΠΆΠΈΡ‚ workspace). ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ workspace Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ β€” Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ ΠΈΠΊΠΎΠ½ΠΊΠ° ~/workspace Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ CS50 IDE. Π”Π°Π²Π°ΠΉΡ‚Π΅ попрактикуСмся. ΠšΠ»ΠΈΠΊΠ½Π΅Ρ‚Π΅ Π² ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ мСстС Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ΠΈ Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ls ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Enter. Π­Ρ‚ΠΈ Π΄Π²Π΅ строчныС Π±ΡƒΠΊΠ²Ρ‹ β€” сокращСниС ΠΎΡ‚ "list" («список») β€” Π²Ρ‹Π·ΠΎΠ²ΡƒΡ‚ список Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠ°ΠΏΠΎΠΊ, находящихся Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ workspace. Π‘Ρ€Π΅Π΄ΠΈ всСго ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΈ ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ Π²Π°ΠΌΠΈ pset1! Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Π½Π°ΡˆΡƒ ΠΏΠ°ΠΏΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. НабираСм cd pset1 ΠΈΠ»ΠΈ многословнСС: cd ~/workspace/pset1 Команда cd (change directory) мСняСт Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ, Π² нашСм случаС Π½Π° ~/pset1 Активная строка помСнялась Π½Π° username:~/workspace/pset1 $ Π­Ρ‚ΠΎ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ~/workspace/pset1 (строка Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ΡΡ ΠΊΠ°ΠΊ «я Π½Π°Ρ…ΠΎΠΆΡƒΡΡŒ Π² pset1 Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°ΠΏΠΊΠΈ workspace, которая Π»Π΅ΠΆΠΈΡ‚ Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅ΠΌΠΎΠΉ ~"). Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ ls Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» hello.txt! Если Π²Ρ‹ ΠΊΠ»ΠΈΠΊΠ½Π΅Ρ‚Π΅ ΠΏΠΎ названию Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅, Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚: это тСкст, ΠΈ ΠΎΠ½ Π½Π΅ Π²Ρ‹Π΄Π°Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ссылки, Π½ΠΎ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ hello.txt находится Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½. НабСритС cd Если Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ саму ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ cd, Π½ΠΎ Π½Π΅ подставляСтС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ имя ΠΏΠ°ΠΏΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΅ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ), ΠΎΠ½Π° Π²Π΅Ρ€Π½Π΅Ρ‚ вас Π² ΠΊΠΎΡ€Π½Π΅Π²ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ строкС Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ: username:~ $ Π§Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π½Π°Π·Π°Π΄ Π² ΠΏΠ°ΠΏΠΊΡƒ pset1, Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ cd workspace ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Enter. Π—Π°Ρ‚Π΅ΠΌ cd pset1 ΠΈ снова Enter. Π’Π°ΠΊΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ эти Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΠ΄Π½ΠΎΠΉ, ΠΏΠΎΠ΄Π»ΠΈΠ½Π½Π΅Π΅: cd workspace/pset1
Hello, C!
НаконСц-Ρ‚ΠΎ эта ΠΌΠΈΠ½ΡƒΡ‚Π° наступила! НачинаСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’Π½ΡƒΡ‚Ρ€ΠΈ нашСй ΠΏΠ°ΠΏΠΊΠΈ pset1 Π² IDE создаСм Ρ„Π°ΠΉΠ» ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ hello.c (Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ), ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π² Π½ΠΎΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ (Π΄ΡƒΠΌΠ°Π΅ΠΌ, Π²Ρ‹ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ это Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π°). Π’ΠΠ–ΠΠž! Π‘ΡƒΠΊΠ²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ строчными, Linux чувствитСлСн ΠΊ рСгистру. Hello.c ΠΈ hello.c β€” Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹. Π’ ΠΏΡ€Π°Π²ΠΎΠΉ части ΠΎΠΊΠ½Π° CS50 IDE Π½Π°Π±ΠΈΡ€Π°Π΅ΠΌ Ρ‚ΠΎΡ‡ΡŒ-Π²-Ρ‚ΠΎΡ‡ΡŒ Ρ‚Π°ΠΊΠΎΠΉ тСкст, ΠΊΠ°ΠΊ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π½ΠΈΠΆΠ΅. Π”Π°, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π΅Π΅ β€” Π½Π°Π±Ρ€Π°Ρ‚ΡŒ. #include int main(void) { printf("hello, world\n"); } Π‘ΡƒΠΊΠ²Ρ‹ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π² CS50 IDE Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ подсвСтка синтаксиса. Она выдСляСт Ρ†Π²Π΅Ρ‚ΠΎΠΌ Π±Π»ΠΎΠΊΠΈ тСкста для Π»ΡƒΡ‡ΡˆΠ΅ΠΉ читаСмости. Π’ самом Ρ„Π°ΠΉΠ»Π΅ Ρ†Π²Π΅Ρ‚Π° Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ, ΠΎΠ½ΠΈ Π²ΠΈΠ΄Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² IDE. Если ΠΎΠ½ΠΈ Π΅ΡΡ‚ΡŒ, Π·Π½Π°Ρ‡ΠΈΡ‚, IDE ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ C, Π° ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ это ΠΈΠΌΠ΅Π½Π½ΠΎ C, Π²Ρ‹ сообщили Π² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° (*.c). Если Π±Ρ‹ Π²Ρ‹ Π½Π°Π·Π²Π°Π»ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ„Π°ΠΉΠ» hello.txt, тСкст Π±Ρ‹Π» Π±Ρ‹ ΠΎΠ΄Π½ΠΎΡ†Π²Π΅Ρ‚Π½Ρ‹ΠΉ. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π»ΠΈ всё Ρ€ΠΎΠ²Π½ΠΎ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΈΠ½Π°Ρ‡Π΅ ΠΏΠΎΠΉΠΌΠ°Π΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π°Π³=). Π‘Π½ΠΎΠ²Π° ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅ΠΌ вашС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ строчными ΠΈ прописными Π±ΡƒΠΊΠ²Π°ΠΌΠΈ. Π‘ΠΈΠΌΠ²ΠΎΠ» \n ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ курсор Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку, ΠΈ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ слСдом тСкст Π½Π΅ слипнСтся с Π²Ρ‹Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ. Ах Π΄Π°, ΠΈ ΠΎ Ρ‚ΠΎΡ‡ΠΊΠ΅ с запятой (;) Π½Π΅ Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅. Π­Ρ‚ΠΎ Π²Π°ΠΆΠ½Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, C Π±Π΅Π· Π½ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Π·Π°Ρ…ΠΎΡ‡Π΅Ρ‚. НаТмитС File > Save (ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ command- ΠΈΠ»ΠΈ Ctrl-s). Π—Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»Π° исчСзла? Если Π΄Π°, Π·Π½Π°Ρ‡ΠΈΡ‚ измСнСния ΡΠΎΡ…Ρ€Π°Π½ΠΈΠ»ΠΈΡΡŒ. ΠšΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ Π² любом мСстС ΠΏΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΎΠΊΠ½Ρƒ ΠΏΠΎΠ΄ вашим ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ ~/workspace/pset1 (Ссли это Π½Π΅ Ρ‚Π°ΠΊ, ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ cd ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Enter, Π·Π°Ρ‚Π΅ΠΌ cd workspace/pset1 ΠΈ снова Enter). Π’Π°ΡˆΠ° активная строка Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ: username:~/workspace/pset1 $ УбСдимся, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» hello.c находится Ρ€ΠΎΠ²Π½ΠΎ Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½. НабираСм ls ΠΈ ΠΆΠΌΠ΅ΠΌ Enter. Π’Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΈ hello.c? Если Π½Π΅Ρ‚, Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ΡΡŒ Π½Π° ΠΏΠ°Ρ€Ρƒ шагов Π½Π°Π·Π°Π΄ ΠΈ создайтС Ρ„Π°ΠΉΠ» Π² Π½ΡƒΠΆΠ½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π΅Ρ‰Π΅ Ρ€Π°Π·. … Π’Π΅ΠΏΠ΅Ρ€ΡŒ наступаСт торТСствСнный ΠΌΠΎΠΌΠ΅Π½Ρ‚: скрСщиваСм ΠΏΠ°Π»ΡŒΡ†Ρ‹ и… ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ: make hello ΠΈ скрСщСнными ΠΆΠ΅ ΠΏΠ°Π»ΡŒΡ†Π°ΠΌΠΈ ΠΆΠΌΠ΅ΠΌ Enter. ИмСнно hello, Π½Π΅ hello.c. Если всС, Ρ‡Ρ‚ΠΎ Π²Ρ‹ послС этого дСйства ΠΏΠ΅Ρ€Π΅Π΄ собой ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ β€” вторая активная строка, которая выглядит Ρ‚ΠΎΡ‡ΡŒ-Π²-Ρ‚ΠΎΡ‡ΡŒ, ΠΊΠ°ΠΊ прСдыдущая, Π·Π½Π°Ρ‡ΠΈΡ‚, всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚! Π’Π°Ρˆ исходный ΠΊΠΎΠ΄ Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ 0 ΠΈ 1). Π’Π΅ΠΏΠ΅Ρ€ΡŒ этот ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ!). Для этого ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ: ./hello Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, ΠΆΠΌΠ΅ΠΌ Enter. Если Π²Ρ‹ Π½Π΅ мСняли Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ "" тСкст, Π½ΠΈΠΆΠ΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅: hello, world Если Π²Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ls ΠΈ Π½Π°ΠΆΠΌΠ΅Ρ‚Π΅ Enter, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» hello, наряду с hello.c ΠΈ hello.txt. Π£ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ hello, Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠ° послС ΠΈΠΌΠ΅Π½ΠΈ, которая сигнализируСт ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ это исполняСмый Ρ„Π°ΠΉΠ», Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹ запускаСтС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.
Π‘Π°Π³ΠΈ?
Если послС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ make, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ ошибки, ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ! Надписи Π²Ρ€ΠΎΠ΄Π΅ Β«expected declarationΒ» ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π³Π΄Π΅-Ρ‚ΠΎ допустили ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΡƒ. Π‘Π²Π΅Ρ€ΡŒΡ‚Π΅ ΠΊΠΎΠ΄ с ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ Π²Ρ‹ΡˆΠ΅ Π΅Ρ‰Π΅ Ρ€Π°Π·, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΎΡ‡Π΅Π½ΡŒ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊΠΎ всСм дСталям. Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! Описания ошибок Π²Ρ‹Π΄Π°ΡŽΡ‚ΡΡ Π½Π° английском. Если нСпонятно, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ поисковиком, Google Translate ΠΈΠ»ΠΈ Π·Π°Π΄Π°ΠΉΡ‚Π΅ вопрос Π² ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ исправили ошибки, Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ваш ΠΊΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ File > Save (ΠΈΠ»ΠΈ command- ΠΈΠ»ΠΈ Ctrl-s), снова Ρ‰Π΅Π»ΠΊΠ½Π΅Ρ‚Π΅ ΠΏΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ части Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΈ Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ make hello (Волько ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ~/workspace/pset1). Если большС ошибок Π½Π΅Ρ‚, запускайтС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, набирая ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ./hello По ΠΈΠ΄Π΅Π΅ ΠΏΠ΅Ρ€Π΅Π΄ Π²Π°ΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ завСтная Ρ„Ρ€Π°Π·Π°, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Π°Ρ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° printf, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΡƒΠ΅Ρ‚ Β«Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΠΉΒ». Если ΠΎΠΊΠ½ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° каТСтся Π²Π°ΠΌ слишком малСньким, ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ ΠΏΠΎ ΠΈΠΊΠΎΠ½ΠΊΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π² окруТности плюса (+), располоТСнной рядом с hello.c.
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ
Π’ CS50 IDE встроСно ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ check50. Оно Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΈ провСряСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ошибок. Если Π²Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ Ρ‚Π°ΠΌ, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ ~/workspace/pset1 Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ: cd ~/workspace/pset1 Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ls Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΏΠΎ мСньшСй ΠΌΠ΅Ρ€Π΅, Ρ„Π°ΠΉΠ» hello.c. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° выглядит ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ, Π° Π½Π΅, скаТСм, Hello.c ΠΈΠ»ΠΈ hello.C. ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ mv source destination source β€” Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ имя Ρ„Π°ΠΉΠ»Π°, destination β€” Π½ΠΎΠ²ΠΎΠ΅ имя Ρ„Π°ΠΉΠ»Π°. mv (ΠΎΡ‚ Π°Π½Π³Π». move) β€” ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° для пСрСимСнования. Если Π²Ρ‹ случайно Π½Π°Π·Π²Π°Π»ΠΈ Ρ„Π°ΠΉΠ» Hello.c, Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ строку: mv Hello.c hello.c УбСдившись, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» Ρ‚ΠΎΡ‡Π½ΠΎ называСтся hello.c Π²Ρ‹Π·ΠΎΠ²Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΡ‡Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ check50. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ 2015.fall.pset1.hello β€”ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ для Π·Π°Π΄Π°Ρ‡ΠΊΠΈ β€œhello world”. check50 2015.fall.pset1.hello hello.c Если ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅: Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΊ лСкциям CS50: Week 1 (Π»Π΅ΠΊΡ†ΠΈΠΈ 3 ΠΈ 4) - 2 Π—Π΅Π»Π΅Π½Ρ‹Π΅ смайлики ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ тСст ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ URL Π²Π½ΠΈΠ·Ρƒ Π²Ρ‹Π²ΠΎΠ΄Π° check50, Π½ΠΎ ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сотрудникам (Π²ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, Ссли интСрСсно, Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅!). check50 запускаСт 3 тСста: сущСствуСт Π»ΠΈ Ρ„Π°ΠΉΠ» hello.c, компилируСтся Π»ΠΈ hello.c ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ Π»ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ строку, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ написан тСкст "hello, world\n". Если Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ грустныС красныС смайлики, Π·Π½Π°Ρ‡ΠΈΡ‚ Ρƒ вас Π±Π°Π³. :( hello.c exists \ expected hello.c to exist :| hello.c compiles \ can't check until a frown turns upside down :| prints "hello, world\n" \ can't check until a frown turns upside down Π—Π΄Π΅ΡΡŒ check50 Π½Π΅ нашСл hello.c, ΠΈ красный смайлик сигнализируСт, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π»ΠΈΠ±ΠΎ ошиблись Π² ΠΈΠΌΠ΅Π½ΠΈ, Π»ΠΈΠ±ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ» Π½Π΅ Ρ‚ΡƒΠ΄Π°. Π–Ρ‘Π»Ρ‚Ρ‹Π΅ Β«Π½Π΅ΠΉΡ‚Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅Β» смайлы ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ тСсты Π½Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΠ»ΠΈΡΡŒ. И ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΈΠΌ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒΡΡ, Ссли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ нашла Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ? Π’ΠΎΡ‚ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выскочит Π² Ρ‚ΠΎΠΌ случаС, Ссли Π²Ρ‹ мСняли тСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ½Π° вывСсти функция printf(): :) hello.c exists :) hello.c compiles :( prints "hello, world\n" \ expected output, but not "hello, world" check50 сообщаСт, Ρ‡Ρ‚ΠΎ оТидалась строка hello, world\n, Π½ΠΎ появилось Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. check50 Π½Π΅ считаСт Π±Π°Π»Π»Ρ‹ Π·Π° ΠΏΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ курса, Π½ΠΎ провСряСт, отличаСтся Π»ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния задания ΠΎΡ‚ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ. И позволяСт Π²Π°ΠΌ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² этом ΠΏΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ курса (ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΌΡ‹ расскаТСм ΠΏΠΎΠ·Π΄Π½Π΅Π΅).
ΠžΡΠ½ΠΎΠ²Ρ‹ Π‘: сравнСниС со Scratch
Hello world Π½Π° Scratch ΠΈ C:
Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΊ лСкциям CS50: Week 1 (Π»Π΅ΠΊΡ†ΠΈΠΈ 3 ΠΈ 4) - 3 #include int main(void) { printf("hello, world\n"); }
  • Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΊ лСкциям CS50: Week 1 (Π»Π΅ΠΊΡ†ΠΈΠΈ 3 ΠΈ 4) - 4 прСдставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ «слова» спрайта Π² ΠΎΠ±Π»Π°Ρ‡ΠΊΠ΅ комикса Π² Scratch, Π² C Π΅ΡΡ‚ΡŒ функция printf, которая Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π΅Π· ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΊΠΎΠ².
  • main β€” ΠΏΠΎ-английски β€” «главная». Π’ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Π’ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΊ лСкциям CS50: Week 1 (Π»Π΅ΠΊΡ†ΠΈΠΈ 3 ΠΈ 4) - 5.
БСсконСчный Ρ†ΠΈΠΊΠ»
Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΊ лСкциям CS50: Week 1 (Π»Π΅ΠΊΡ†ΠΈΠΈ 3 ΠΈ 4) - 6 Π² ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ Π½Π° C: while (true) { printf("hello, world\n"); } while (true) Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ самоС: Ρ†ΠΈΠΊΠ» ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎΠΊΠ° (while) Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true (булСвскоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Β«ΠΏΡ€Π°Π²Π΄Π°Β» ΠΈΠ»ΠΈ Β«Π΅Π΄ΠΈΠ½ΠΈΡ‡ΠΊΠ°Β»). Π’Π°ΠΊΠΎΠΉ Ρ†ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ выполнятся бСсконСчно.
Π¦ΠΈΠΊΠ», выводящий Ρ„Ρ€Π°Π·Ρƒ Π½Π° экран 10 Ρ€Π°Π·
Scratch Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΊ лСкциям CS50: Week 1 (Π»Π΅ΠΊΡ†ΠΈΠΈ 3 ΠΈ 4) - 7 Π‘ for (int i = 0; i < 10; i++) { printf("hello, world!\n"); } i β€” пСрСмСнная-счСтчик, Π΅Ρ‘ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ мСняСт ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π° i++, увСличивая Π΅Π³ΠΎ Π½Π° 1 ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²ΠΈΡ‚ΠΊΠ΅ Ρ†ΠΈΠΊΠ»Π°. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ i присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0 с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° присваивания =. Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! Как ΠΈ Π² Java, Π² C равСнство обозначаСтся ==, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ присваивания =. Π’ΠΎ Π΅ΡΡ‚ΡŒ, a = 5 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ a присвоили Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 5, Π° (a= =5) ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ булонскоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (Ссли Π° Ρ€Π°Π²Π½ΠΎ 5, Ρ‚ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π²Π΄ΠΈΠ²ΠΎ, Ссли Π½Π΅ Ρ€Π°Π²Π½ΠΎ, Ρ‚ΠΎ Π»ΠΎΠΆΠ½ΠΎ). Π¦ΠΈΠΊΠ» остановится, ΠΊΠΎΠ³Π΄Π° i «дорастСт» Π΄ΠΎ 9. НСслоТно ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ†ΠΈΠΊΠ» выполнится 10 Ρ€Π°Π·. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ количСство Ρ€Π°Π·, Π² C Π²Ρ‹ Π·Π°Π΄Π°Π΅Ρ‚Π΅ Ρ†ΠΈΠΊΠ» for (int i = 0; i < 10; i++). Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΊ лСкциям CS50: Week 1 (Π»Π΅ΠΊΡ†ΠΈΠΈ 3 ΠΈ 4) - 8 И Ρ‚ΠΎ ΠΆΠ΅ самоС Π² ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ Π½Π° C: int counter = 0; while (true) { printf("%i\n", counter); counter++; }
  • counter сохраняСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² C ΠΈ Scratch. Π’ Π‘ Π·Π°Π΄Π°Π΅ΠΌ int counter = 0 вмСсто Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΊ лСкциям CS50: Week 1 (Π»Π΅ΠΊΡ†ΠΈΠΈ 3 ΠΈ 4) - 9.
  • ΠŸΠΎΠΌΠ΅Ρ‡Π°Π΅ΠΌ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°ΠΊ int для уточнСния: i β€” Ρ†Π΅Π»ΠΎΠ΅ число (ΠΎΡ‚ Π°Π½Π³Π». integer, Ρ†Π΅Π»Ρ‹ΠΉ).
  • Π—Π½Π°Ρ‡ΠΎΠΊ %i, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π² printf Π² Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠΉ строкС β€” Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ, говорящий ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ дСсятичноС Ρ†Π΅Π»ΠΎΠ΅, Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ printf Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ пСрСмСнная counter.
Π‘ΡƒΠ»Π΅Π²Ρ‹ выраТСния
Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΊ лСкциям CS50: Week 1 (Π»Π΅ΠΊΡ†ΠΈΠΈ 3 ΠΈ 4) - 10 Π­Ρ‚ΠΎ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ (x < y) ((x < y) && (y < z))
Условия
Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΊ лСкциям CS50: Week 1 (Π»Π΅ΠΊΡ†ΠΈΠΈ 3 ΠΈ 4) - 11 И Β«ΡΠΈΡˆΠ½Ρ‹ΠΉΒ» эквивалСнт: Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΊ лСкциям CS50: Week 1 (Π»Π΅ΠΊΡ†ΠΈΠΈ 3 ΠΈ 4) - 12 А Ρ‡Ρ‚ΠΎ насчСт ΠΏΠ΅Ρ€Π²ΠΎΠΉ нСпонятной Ρ„Ρ€Π°Π·Ρ‹? #include Об этом ΠΏΠΎΠ·Π΄Π½Π΅Π΅, Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΒ»
УсловныС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹
Π­Ρ‚ΠΈ рСбята ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚, выполняСтся Π»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ условиС (логичСскоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, вопрос, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Β«Π΄Π°Β» ΠΈΠ»ΠΈ Β«Π½Π΅Ρ‚Β»), ΠΈ Ссли это Ρ‚Π°ΠΊ, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дСйствия, привязанныС ΠΊ этому ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· ΠΆΠΈΠ·Π½ΠΈ: Ссли пошСл доТдь (ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ пошСл доТдь) ΠΈ я Π½Π° ΡƒΠ»ΠΈΡ†Π΅ (я Π²ΠΎ врСмя доТдя Π½Π°Ρ…ΠΎΠΆΡƒΡΡŒ Π½Π° ΡƒΠ»ΠΈΡ†Π΅), я ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽ Π·ΠΎΠ½Ρ‚ΠΈΠΊ. if (условиС) { //ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ истинно } УслоТнСнный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚: Ссли условиС выполняСтся, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ дСйствиС, Ссли Π½Π΅Ρ‚ β€” ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ дСйствиС. if (условиС) { //Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ дСйствиС } else { //Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ дСйствиС, Ссли условиС Π»ΠΎΠΆΠ½ΠΎ } ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Ссли Ρ‚Π΅Π±Π΅ большС 18, ΠΎΠ΄ΠΎΠ±Ρ€ΠΈΡ‚ΡŒ доступ. Если мСньшС, Π½Π΅ ΠΎΠ΄ΠΎΠ±Ρ€ΠΈΡ‚ΡŒ. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΊ лСкциям CS50: Week 1 (Π»Π΅ΠΊΡ†ΠΈΠΈ 3 ΠΈ 4) - 12
ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Ρ‹Π±ΠΎΡ€Π°
switch (n) { case const1: // Ссли n Ρ€Π°Π²Π΅Π½ const1, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ break; // условиС ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΠ»ΠΎΡΡŒ β€” Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· Π²Ρ‹Π±ΠΎΡ€Π° case const2: // Ссли n Ρ€Π°Π²Π΅Π½ const2, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ break; ... default: // Ссли n Π½Π΅ Ρ€Π°Π²Π΅Π½ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· констант, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ break; } ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Ссли n = 50, Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ "CS50 is Introduction to Computer Science I", Ссли n = 51, Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ "CS51 is Introduction to Computer Science II", ΠΈΠ½Π°Ρ‡Π΅ β€” Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ "Sorry, I'm not familiar with that class!" switch (n) { case 50: printf("CS50 is Introduction to Computer Science I\n"); break; case 51: printf("CS51 is Introduction to Computer Science II\n"); break; default: printf("Sorry, I'm not familiar with that class!\n"); break; }
Π¦ΠΈΠΊΠ»Ρ‹
while: провСряСт условиС, Π·Π°Ρ‚Π΅ΠΌ исполняСт дСйствиС, ΠΏΠΎΠΊΠ° условиС истинно while (условиС) { // Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ, ΠΏΠΎΠΊΠ° истина } do/while отличаСтся Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π· ΠΎΠ½ исполняСт дСйствиС Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ условия, Π° Π·Π°Ρ‚Π΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ провСряСт Π΅Π³ΠΎ. Если условиС выполняСтся, ΠΎΠ½ повторяСт дСйствиС, ΠΏΠΎΠΊΠ° условиС Π½Π΅ станСт лоТью. do { ) // Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ, ΠΏΠΎΠΊΠ° истина } while (условиС); Π¦ΠΈΠΊΠ» for повторяСт дСйствиС Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ количСство Ρ€Π°Π· Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΊ лСкциям CS50: Week 1 (Π»Π΅ΠΊΡ†ΠΈΠΈ 3 ΠΈ 4) - 13 Π¦ΠΈΠΊΠ»Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС внСшнСго Ρ†ΠΈΠΊΠ»Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ выполнятся Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Ρ†ΠΈΠΊΠ». Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΊ лСкциям CS50: Week 1 (Π»Π΅ΠΊΡ†ΠΈΠΈ 3 ΠΈ 4) - 14
ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² C
основныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² C
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π‘
Π’Ρ‹, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, ΡƒΠΆΠ΅ задались вопросом, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ пСрвая строка ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° C: #include Какова Π΅Ρ‘ Ρ€ΠΎΠ»ΡŒ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· Π½Π΅Ρ‘? Π‘Ρ‚Ρ€ΠΎΠΊΠ° #include Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΡƒΡŽ Π²Π΅Ρ‰ΡŒ: ΠΎΠ½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΡƒΠΆΠ΅ написанного ΠΊΠΎΠ΄Π° ΠΊ вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Имя ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ΄Π΅Ρ‚ Π² ΡƒΠ³Π»ΠΎΠ²Ρ‹Ρ… скобках (<>) ΠΈ носит Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ (.h). Если Π±Ρ‹ Π½Π΅ Π±Ρ‹Π»ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Ρ‚ΠΎ любоС, самоС элСмСнтарноС дСйствиС, ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ снова ΠΈ снова. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Π°Ρ Π½Π°ΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° содСрТит Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°. ИмСнно ΠΎΠ½Π° позволяСт Π½Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ printf () для Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° экран. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ссли Π±Ρ‹ ΠΌΡ‹ Π½Π΅ написали строку #include , Π½ΠΎ оставили Π² Ρ‚Π΅Π»Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ printf (), ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ запуска ΠΌΡ‹ Π±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ! ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π±Π΅Π· этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ компилятор Π½Π΅ Π·Π½Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ printf (). Π•ΡΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ стандартныС, ΠΎΠ½ΠΈ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ словарный запас языка. Ѐункция printf() Π½Π΅ встроСна Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, Π½ΠΎ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ языка C. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΈΠΉ программист Ρ€Π°Π½Π΅Π΅ написал Π΅Ρ‘ ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ» Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Сю ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Π½Π΅ изобрСтая вСлосипСд. Π§Ρ‚ΠΎΠ±Ρ‹ компилятор Π΅Ρ‘ «понял», ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ . Π•ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ стандартныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² процСссС прохоТдСния CS50. НапримСр, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° строк, Π³Π΄Π΅ описаны ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ со строками (ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹, слоТСниС ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅). По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ популярными языками программирования, количСство стандартных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ C ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅Π²Π΅Π»ΠΈΠΊΠΎ. Но Π΅ΡΡ‚ΡŒ самописныС, Ρ‡Π°Ρ‰Π΅ всСго β€” Π±ΠΎΠ»Π΅Π΅ узкоспСциализированныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π’Π°ΠΊ, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π±Ρ‹Π»Π° создана ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для студСнтов CS50. Π‘Π°ΠΌΠΎΠ΅ врСмя ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Π°ΠΆΠ½ΠΎΠ΅ Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠΏΠΎΠΌΠΈΠΌΠΎ написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ собствСнного ΠΊΠΎΠ΄Π°, Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ Π²Π°ΠΆΠ½Ρ‹ΠΌ Π½Π°Π²Ρ‹ΠΊΠΎΠΌ: Π·Π½Π°Π½ΠΈΠ΅ΠΌ инструмСнтов, ΡƒΠΆΠ΅ написанных ΠΈ ΡƒΠΌΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… (Ρ‡ΡƒΠΆΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½ΠΈΠ΅ «колСса». Π’Π°ΠΊ, Ссли Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² процСссС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½ΡƒΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ слоТной Π·Π°Π΄Π°Ρ‡ΠΈ, которая ΠΏΡ€ΠΈ этом каТСтся довольно распространСнной, ΠΏΡ€ΠΈΡƒΡ‡Π°ΠΉΡ‚Π΅ΡΡŒ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ сСбС вопрос: Β«Π° Π½Π΅ написал Π»ΠΈ Π΅Ρ‘ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ?Β» Π’Π΅Π»ΠΈΠΊΠΈ ΡˆΠ°Π½ΡΡ‹, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊ ΠΎΠ½ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅. Π’ тСхничСских Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ…, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° β€” это Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΡƒΡ‚Π΅ΠΌ объСдинСния Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊ. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ β€” это Ρ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ (*.o), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΏΡ€ΠΈ компиляции ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ C
Когда программист ΠΏΠΈΡˆΠ΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, ΠΊΠΎΠ΄ распрСдСляСтся ΠΏΠΎ Π΄Π²ΡƒΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ² β€” Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» (header, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ *.h) ΠΈ Ρ„Π°ΠΉΠ» Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (implementation, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ *.c). Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» содСрТит ΠΊΠΎΠ΄, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ рСсурсы Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π’ΠΎ Π΅ΡΡ‚ΡŒ описания ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, структур, Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅. Если Π²Π°ΠΌ интСрСсно, Ρ‡Ρ‚ΠΎ содСрТит Ρ‚Π° ΠΈΠ»ΠΈ иная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π³Π»ΡΠ½ΡƒΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ». Π’ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ CS50 IDE (ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… срСдах Linux) Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ less для просмотра Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΡƒΡŽ вас Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ: less /usr/include/stdio.h Π€Π°ΠΉΠ» откроСтся прямо Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅. ΠŸΡ€Π°Π²Π΄Π°, для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΊ лСкциям CS50: Week 1 (Π»Π΅ΠΊΡ†ΠΈΠΈ 3 ΠΈ 4) - 15 Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· less, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ q Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π½Π΅ содСрТит ΠΊΠΎΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‡Ρ‚ΠΎ слуТит ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ понятия β€” сокрытия Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ инкапсуляции. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ систСмы Π½Π΅Π·Π°Ρ‡Π΅ΠΌ Π·Π½Π°Ρ‚ΡŒ «внутрСнности» Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Π΅ΠΌΡƒ достаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π»Π°. Если Π²Ρ‹ ΠΏΡ€ΠΎΡˆΠ΅Ρ€ΡΡ‚ΠΈΡ‚Π΅ stdio.h, Ρ‚ΠΎ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Ρ‚Π°ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ printf(), хотя ΠΊΠ°ΠΊ Π΅Ρ‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π²Ρ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅Ρ‚Π΅. Π­Ρ‚ΠΎ сдСлано для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ»ΠΎΡ…ΠΎ ΠΎΡ‚Ρ€Π°Π·ΠΈΡ‚ΡŒΡΡ Π½Π° систСмС. Π’Π°ΠΊ, Ссли ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ printf() Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅, это отразится Π½Π° всСх Ρ‚Π΅Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Ρ‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚. Π›ΡŽΠ±ΠΎΠ·Π½Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ интСрСсно, Π³Π΄Π΅ спрятана рСализация. Богласно ΠΊΠΎΠ½Π²Π΅Π½Ρ†ΠΈΠΈ (соглашСния, принятыС Π² ΠΌΠΈΡ€Π΅ программирования) Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ хранят Π² Ρ„Π°ΠΉΠ»Π΅ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ (*.c). ПослС компиляции Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π° основС Π΄Π²ΡƒΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π½ΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ создаСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ собран Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» с Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΊ лСкциям CS50: Week 1 (Π»Π΅ΠΊΡ†ΠΈΠΈ 3 ΠΈ 4) - 16 Автор Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ программисту, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…ΠΎΡ‡Π΅Ρ‚ Π΅Ρ‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π΄Π²Π° Ρ„Π°ΠΉΠ»Π° β€” с Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ». Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ„Π°ΠΉΠ» с исходным ΠΊΠΎΠ΄ΠΎΠΌ программисту Π½Π΅ Π½ΡƒΠΆΠ΅Π½. Π’ΠΎΡ‡Π½Π΅Π΅, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½ΡƒΠΆΠ΅Π½, Ссли программист Ρ…ΠΎΡ‡Π΅Ρ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π² самой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ ΠΏΠΎΠ΄ собствСнныС Π½ΡƒΠΆΠ΄Ρ‹. Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ функциями Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² своСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅: 1. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ строки #include Π’ случаС стандартных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ достаточно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² ΡƒΠ³Π»ΠΎΠ²Ρ‹Ρ… скобках: #include <имя_Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.h> Если Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ, Π»Π΅ΠΆΠΈΡ‚ Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΠ°ΠΏΠΊΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ Π΅Ρ‘ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: #include β€œΠΈΠΌΡ_Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.h” 2.ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» для компиляции. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹ΠΉ шаг, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ, ΠΊΠ°ΠΊ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π½Π΅ содСрТит Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ элСмСнтов Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ компилятор clang с Ρ„Π»Π°Π³ΠΎΠΌ –l ΠΈ ΠΈΠ΄ΡƒΡ‰ΠΈΠΌ нСпосрСдствСнно Π·Π° Π½ΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. НапримСр, ΠΊΠΎΠΌΠΏΠΎΠ½ΡƒΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ cs50: clang hello –lcs50 Clang β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· компиляторов. Для компиляции ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡƒΡŽ Π²Π°ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ make. По сути, ΠΎΠ½Π° Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ clang с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.
И снова Hello C: Ρ€Π°Π·Π±ΠΎΡ€ синтаксиса ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ
Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° #include ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° . ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² C состоят ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π° Ρ‚Π΅ β€” ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Ѐункция β€” это кусок ΠΊΠΎΠ΄Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅, Π° ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π΅Ρ‘ исполнСния. Π€ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки { } ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ Ρ‚Π΅Π»ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€” описаниС Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π΄Π΅Π»Π°Ρ‚ΡŒ. printf() ΠΈΠ· стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ stdio Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π»ΡŽΠ±ΡƒΡŽ строку Π½Π° экран. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, Π° символ β€œ\n” ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ курсора Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: функция Β«ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ Ρ†Π΅Π»ΠΎΠ³ΠΎ числа». ΠŸΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Π΅, Π² нашСм случаС β€” число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½ΡƒΠΆΠ½ΠΎ возвСсти Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚. Π—Π°Ρ‚Π΅ΠΌ Π² Π½Π΅ΠΉ прописываСтся Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ умноТСния числа Π½Π° самоС сСбя, ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ этого умноТСния ΠΎΠ½Π° Π²Ρ‹Π΄Π°Π΅Ρ‚ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅. int sqr(int a) { return a*a; } int sqr(int a) β€” Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ скобках β€” Π΅Ρ‘ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ a, это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ подаСтся Π½Π° Π²Ρ…ΠΎΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π­Ρ‚ΠΎ ΠΊΠ°ΠΊ пСрСмСнная Π² ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΈ. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ числа 5, Ρ‚ΠΎ ΠΌΡ‹ Π²Ρ‹Π·ΠΎΠ²Π΅ΠΌ Π½Π°ΡˆΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² Π²ΠΈΠ΄Π΅ sqr(5) ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ 25. int β€” Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… (ΠΎΡ‚ Π°Π½Π³Π». integer β€” Ρ†Π΅Π»Ρ‹Π΅ числа). Наша функция написана Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π΅Ρ‘ с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ a = 5.5. Вакая ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ 5.5 β€” число Π΄Ρ€ΠΎΠ±Π½ΠΎΠ΅, Π° нашС число Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ†Π΅Π»Ρ‹ΠΌ. int ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚ΠΈΠΏ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ½Π° эта функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ. Он Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ совпадаСт с Ρ‚ΠΈΠΏΠΎΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: функция, которая ΠΎΡ‚Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΡ‚ Ρ†Π΅Π»ΠΎΠ³ΠΎ числа 0.5: double bit_less(int a) { double b; b = a – 0.5; return b; } int main (void) β€” Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π΅Ρ‘ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ, Π½ΡƒΠΆΠ½Π° функция ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ main. Π‘Π»ΠΎΠ²ΠΎ void Π² скобках ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρƒ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! main всСгда Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ int, Π½ΠΎ return для Π½Π΅Ρ‘ Π½Π΅ обязатСлСн. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅ΠΉ значСния: void sayhello(void) { printf(β€œhello everyone!\n”); } ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π³Π»Π°Π²Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, ΠΎΠ½Π° Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ привСтствиС. Π”Π°Π²Π°ΠΉΡ‚Π΅ напишСм ΠΎΠ΄Π½Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ нСсколько Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π’Π΅Ρ…, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠΆΠ΅ создали Π²Ρ‹ΡˆΠ΅. Π”Π²Π΅ созданныС Π½Π°ΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ΠΌ Ρ‡Π΅Ρ€Π΅Π· Π³Π»Π°Π²Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ main(). Π’ C, ΠΊΠ°ΠΊ ΠΈ любом языкС, Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ элСмСнт, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ Π² ΠΊΠΎΠ»Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ Π½Π΅ для ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, Π° для понимания людСй. НапримСр, описаниС, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΎΡ€ΠΎΠΉ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² Ρ‡ΡƒΠΆΠΎΠΌ (ΠΈ Π΄Π°ΠΆΠ΅ своСм) ΠΊΠΎΠ΄Π΅ ΠΎΡ‡Π΅Π½ΡŒ слоТно. //ΠΏΡ€ΠΈΠΌΠ΅Ρ€ однострочного коммСнтария /** Π° это – многострочного **/ #include //функция возвСдСния Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ числа a int sqr(int a) { return a*a; } //Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ привСтствиС void test(void) { printf ("hello everyone!\n"); } //главная функция int main(void) { test(); printf("%d\n", sqr(5)); } ΠŸΠΎΡ‡Ρ‚ΠΈ всё, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π²Ρ‹ ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ. Π”Π²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€” возвСдСния Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ ΠΈ привСтствия ΠΈ главная функция main, Π³Π΄Π΅ ΠΌΡ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ эти Π΄Π²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρƒ нас сначала вывСдСтся привСтствиС, Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС β€” ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ 5. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, функция test() вызываСтся с пустыми скобками, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π΅Ρ‘ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΊΠ°ΠΊ void.
Π•Ρ‰Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ Π²Π²ΠΎΠ΄Π΅/Π²Ρ‹Π²ΠΎΠ΄Π΅ Π² C
Π’Ρ‹, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, ΡƒΠΆΠ΅ успСли Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ странныС символы %d ΠΈ %f Π² скобках ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° printf. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ функция printf Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅: Ρ€rintf ("ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ строка", Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚1, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚2,...); Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ строка содСрТит ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ‚Ρ€Π΅Ρ… Ρ‚ΠΈΠΏΠΎΠ²:
  • символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ выводятся Π½Π° экран дисплСя;
  • спСцификаторы прСобразования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Π²Ρ‹Π²ΠΎΠ΄ Π½Π° экран ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ списка;
  • ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ константы.
Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ прСобразования начинаСтся со Π·Π½Π°ΠΊΠ° % ΠΈ заканчиваСтся символом, Π·Π°Π΄Π°ΡŽΡ‰ΠΈΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅. НСкоторыС ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… символов:
  • с: Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° являСтся символ;
  • d ΠΈΠ»ΠΈ i: дСсятичноС Ρ†Π΅Π»ΠΎΠ΅ число;
  • f: дСсятичноС число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ;
  • s: строка символов.
Π’ΠΎ Π΅ΡΡ‚ΡŒ, %d ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½Π° экранС появится Ρ†Π΅Π»ΠΎΠ΅ дСсятичноС, Π° %f β€” дСсятичноС с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой. Π§Ρ‚ΠΎ Ссли Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²Ρ‘Π» Π΄Π°Π½Π½Ρ‹Π΅ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹? Для этого ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ scanf( ), ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ‚Π°ΠΊΠΆΠ΅ Π»Π΅ΠΆΠΈΡ‚ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ stdio. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ с экрана вСщСствСнноС число, Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ строку scanf("%d", &a); Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡˆΠ΅ΠΌ Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ сам Π²Π²ΠΎΠ΄ΠΈΠ» число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½ΡƒΠΆΠ½ΠΎ возвСсти Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΊ лСкциям CS50: Week 1 (Π»Π΅ΠΊΡ†ΠΈΠΈ 3 ΠΈ 4) - 17
ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ (14)
  • популярныС
  • Π½ΠΎΠ²Ρ‹Π΅
  • старыС
Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ
IGOR ANTONOF
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 3
13 апрСля 2023, 06:50
Π’ΠΎ-ΠΏΠ΅ΠΏΡ€Π²Ρ‹Ρ…, Π°Π²Ρ‚ΠΎΡ€ поста Π·Π°Π±Ρ‹Π»Π° Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ <stdio.h> Π² самой ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ "hello, world", ΠΈΠ½Π°Ρ‡Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ скомпилируСтся ΠΈ выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, этот ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» устарСл. Π›ΡƒΡ‡ΡˆΠ΅ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° CS50 Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΡƒΡ€ΠΎΠΊΠΈ с Π³ΡƒΠ³Π» ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠΌ.
Anonymous #2516700
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 1
29 января 2021, 11:42
Π”ΠΎΠ±Ρ€Ρ‹ΠΉ дСнь. Π•ΡΡ‚ΡŒ Π»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΡƒΠ΄Π°-Ρ‚ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ, Π³Π΄Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π³Π»ΡƒΠΏΡ‹Π΅ вопросы Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ²) А Ρ‚ΠΎ ΡΠΌΠΎΡ‚Ρ€ΡŽ вопросов ΠΌΠ½ΠΎΠ³ΠΎ, Π° ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Π½Π΅Ρ‚. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ссылку ΠΊΡƒΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ вопросы поТалуйста.
АлСксандр #2503146
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 2
26 января 2021, 13:51
Π•ΡΡ‚ΡŒ Π»ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ информация ΠΊΠ°ΠΊ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² cs50.io ? ΠŸΡ€ΠΈ рСгистрации Π½Π΅Ρ‚ возмоТности Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ eDX (Π·Π°ΠΉΡ‚ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· GitHub), Π½Π΅Ρ‚ ΠΏΠ°ΠΏΠΊΠΈ воркспСйс ΠΈ Π½Π΅Ρ‚ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΏΠ°ΠΏΠΎΠΊ! Π― Ρ‚Π°ΠΊ понимаю, эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΡ…?
Π•ΠΊΠ°Ρ‚Π΅Ρ€ΠΈΠ½Π°
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 2
29 июля 2021, 09:22
РСгистрация сСйчас ΠΏΡ€ΠΎΡ‰Π΅, Π½Π΅ ΠΈΡ‰ΠΈΡ‚Π΅ eDX. Папки ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ названиями создаСм сами, Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ с Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π±Π΅Ρ€Π΅ΠΌ здСсь: http://cs50.tv/2015/fall/#about,lectures (заглянитС Π² мСню свСрху справа: Lectures, Sections, Problem ΠΈ Ρ‚. Π΄.) По нСобходимости ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°)))
23 ноября 2020, 09:46
Никто Π½Π΅ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ:( Ρ‚ΠΎΠΆΠ΅ Π½Π΅Ρ‚ ΠΏΠ°ΠΏΠΎΠΊ
14 ΠΌΠ°Ρ€Ρ‚Π° 2020, 14:57
Π₯Π΅Π΅Π΅Π΅Π»ΠΏ! Π·Π°Ρ€Π΅Π³Π°Π»Π°ΡΡŒ, вошла Π½Π° ΠΊΠ»Π°ΡƒΠ΄9, Π½ΠΎ воркспСйс Π½Π΅Ρ‚, Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΏΠ°ΠΏΠΎΠΊ Π½Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ?
graumo44
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 0
19 июля 2019, 20:31
Π’ EDx зарСгСстрировался, зашСл cs50.io, залогинился. Появилось Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ пространство, Π½ΠΎ ΠΏΠ°ΠΏΠΊΠΈ workspace Π½Π΅Ρ‚, Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π½Π΅Ρ‚! Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ? я Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ
15 мая 2020, 07:57
Π²Ρ‹ Π½Π΅ ΠΎΠ΄ΠΈΠ½ Ρ‚Π°ΠΊΠΎΠΉ
ΠœΠΈΡ…Π°ΠΈΠ»
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 0
21 апрСля 2019, 21:40
Обновил Π΄ΠΎ вСрсии 158. ΠŸΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ Π½Π° Π»ΠΎΠ³ΠΎ CS50 IDE Π²Π²Π΅Ρ€Ρ…Ρƒ справа рядом с вСрсиСй - появлятся ΠΌΠΎΠΉ Π½ΠΈΠΊ. ΠŸΡ€ΠΈ этом Π² workspace пустой. Боздаю ΠΏΠ°ΠΏΠΊΡƒ pset1 ΠΈ Ρ„Π°ΠΉΠ» hello.c, Π²Π²ΠΎΠΆΡƒ ΠΊΠΎΠ΄: #include int main(void) { printf ("hello, world/n"); } Π”Π°Π»Π΅Π΅ Π²Π²ΠΎΠΆΡƒ make hello ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ: ~/workspace/pset1/ $ make hello clang -fsanitize=signed-integer-overflow -fsanitize=undefined -ggdb3 -O0 -std=c11 -Wall -Werror -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wshadow hello.c -lcrypt -lcs50 -lm -o hello hello.c:1:9: error: expected "FILENAME" or <FILENAME> #include ^ hello.c:4:5: error: implicitly declaring library function 'printf' with type 'int (const char *, ...)' [-Werror,-Wimplicit-function-declaration] printf ("hello, world/n"); ^ hello.c:4:5: note: include the header <stdio.h> or explicitly provide a declaration for 'printf' 2 errors generated. make: *** [hello] Error 1 ~/workspace/pset1/ $ Π² Ρ‡Ρ‘ΠΌ я Ρ‚ΡƒΠΏΠΎΠΉ Ρ‡ΡƒΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ?
ΠœΠΈΡ…Π°ΠΈΠ»
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 0
21 апрСля 2019, 21:54
Разобраляс: Π² описании ошибка - пСрвая строка Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ: #include <stdio.h> Π’ΡƒΡ‚ - Π½ΠΎΡ€ΠΌ - https://javarush.com/quests/lectures/questharvardcs50.level01.lecture11
Fedgeralt
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 5
19 сСнтября 2016, 09:53
ΠΌΠΎΠΆΠ΅Ρ‚ я Ρ‡Π΅Π³ΠΎ Ρ‚ΠΎ Π½Π΅ понимаю НО ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚Π΅ ΠΌΠ½Π΅, Π·Π°Ρ‡Π΅ΠΌ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ int sqr(int a), ΠΌΡ‹ объявляСм int b; записываСм Π² Π½Π΅Π΅ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ a, Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ a*a?
эта b Π½ΠΈΠ³Π΄Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ 2 эти строки
Masha
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 41
19 сСнтября 2016, 14:07
Π’Ρ‹ ΠΏΡ€Π°Π²Ρ‹, это случайный Π°Ρ‚Π°Π²ΠΈΠ·ΠΌ))
valdemarpb
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 18
30 августа 2016, 13:50
Π² с ΠΎΠΏΡ‹Ρ‚Π° Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π½Π΅Ρ‚Ρƒ. username Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Π½Π΅ Π²ΠΈΠ΄Π½ΠΎ. (~/workspace/pset1/)Ρ„Π°ΠΉΠ» hello.c создал, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ±ΡƒΡŽ Β«make helloΒ», Π²Ρ‹Π΄Π°Ρ‘Ρ‚ сообщСниС Β«make: *** No rule to make target `hello'. Stop.Β»
Π’ Ρ‡Ρ‘ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°?
Π—Π°Ρ€Π°Π½Π΅Π΅ спасибо
Corwin
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 25
31 августа 2016, 13:10
НуТно ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ с Ρ„Π°ΠΉΠ»ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ это cd pset1, Π΄Π°Π»Π΅Π΅ снова ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ make hello