JavaRush /Blog Java /Random-FR /Matériel supplémentaire pour les cours CS50 : semaine 1 (...
Masha
Niveau 41

Matériel supplémentaire pour les cours CS50 : semaine 1 (cours 3 et 4)

Publié dans le groupe Random-FR
CS50 en matériel supplémentaire russe Tâches de la semaine 1

Objectifs de la première semaine

  • Familiarisez-vous avec les commandes Linux de base
  • Apprenez la syntaxe C de base et résolvez quelques problèmes
  • Commencez à réfléchir plus clairement =)
IDE CS50
Pour effectuer les tâches, CS50 propose un IDE (Integrated Development Environment) dans le cloud. Pour l'utiliser, créez un compte sur la plateforme edX et inscrivez-vous au cours original . Après cela :
1. Accédez à cs50.io, sélectionnez edX dans la liste, entrez votre identifiant et votre mot de passe, cliquez sur Soumettre 2. Entrez les informations de votre compte edX, cliquez sur Retourner à ID.CS50.NET . cs50.io 3. Nous attendons : votre espace virtuel est en cours de création. espace virtuel cs50 4. C'est fait ! idée CS50
Ligne de commande et lancement de l'IDE CS50
Au bas de la fenêtre CS50 IDE, dans l'onglet Terminal, se trouve une fenêtre de terminal ou un panneau de ligne de commande. Vous pouvez saisir ici des commandes de chaîne : vous pouvez faire la même chose qu'avec l'interface de la fenêtre, par exemple lancer des applications, supprimer et créer des fichiers, installer des logiciels. Si vous n'avez jamais travaillé avec la ligne de commande, cette méthode semble probablement lourde : vous devez mémoriser les commandes et les saisir au lieu de cliquer sur les icônes et les boutons. Dans une certaine mesure, cela est vrai, c'est alors que l'interface fenêtre a été inventée. Cependant, la ligne de commande est disponible sur tous les systèmes d’exploitation et les administrateurs l’adorent. Et tout cela parce que parfois on ne peut pas vivre sans. Dans la fenêtre IDE du terminal, vous verrez une ligne mystérieuse : username:~/workspace $ à la place de « username », il y aura un nom généré automatiquement (basé sur vos données d'enregistrement). Cliquez sur la fenêtre du terminal, tapez : update50 Appuyez sur Entrée. La commande demande au système de se mettre à jour. Vous verrez des lignes apparaître dans le terminal décrivant le processus d'installation. Ne fermez pas l'IDE CS50 tant que la mise à jour n'est pas terminée ! . Après cela, la ligne par défaut réapparaîtra, celle avec votre nom.
Travailler dans l'EDI
Créons un dossier dans lequel vos fichiers seront stockés. Cliquez avec le bouton droit sur ~/workspace (votre répertoire racine) dans le coin supérieur gauche de CS50 IDE , sélectionnez New Folder . Renommez le dossier pset1 (si vous avez mal orthographié le nom, cliquez avec le bouton droit sur votre dossier et sélectionnez Renommer ). cs50 ide renommer le dossier Cliquez ensuite avec le bouton droit sur le dossier pset1 et sélectionnez Nouveau fichier . Le fichier Untilted apparaît, renommez-le hello.txt . idée CS50 Double-cliquez sur hello.txt. Dans CS50 IDE, vous verrez un nouvel onglet et un champ sur la droite où vous pouvez taper. Si vous avez fait cela, faites attention au symbole astérisque (*) qui apparaît avant le nom du fichier sur l'onglet - un indicateur que des modifications ont été apportées au fichier, mais non enregistrées. Matériel supplémentaire pour les cours CS50 : Semaine 1 (cours 3 et 4) - 1 Enregistrez le fichier en allant dans *Fichier > Enregistrer ou en utilisant commande + S (sur les machines Apple) ou Ctrl + S (sur les PC). L'astérisque devrait disparaître. Vérifions si le fichier est là où il devrait être. Faisons cela en utilisant la ligne de commande, il est temps de s'y habituer :). Comme auparavant, la ligne active dans le terminal ressemble à ceci : username:~/workspace $ Workspace - le répertoire de travail actuel (celui qui est ouvert dans l'environnement de travail). Le tilde (~) indique le répertoire racine (l'espace de travail s'y trouve). Notez que l'espace de travail dans le terminal est le même que l'icône ~/workspace dans le coin supérieur gauche de l'IDE CS50. Entraînons-nous. Cliquez n'importe où dans le terminal, tapez la ligne de commande ls et appuyez sur Entrée. Ces deux lettres minuscules - abréviation de "liste" - feront apparaître une liste de fichiers et de dossiers situés dans le répertoire actuel de l'espace de travail. Entre autres choses, vous verrez le pset1 que vous avez créé ! Ouvrons maintenant notre dossier à l'aide de la commande. On tape cd pset1 ou de manière plus verbeuse : cd ~/workspace/pset1 La commande cd (change directory) change le répertoire actif, dans notre cas en ~/pset1 La ligne active a changé en username:~/workspace/pset1 $ Cela confirme que vous êtes maintenant dans le répertoire ~/workspace/pset1 (la ligne signifie « Je suis dans pset1 à l'intérieur de l'espace de travail dossier, qui se trouve dans le dossier racine, noté ~"). Tapez maintenant ls Vous verrez le fichier hello.txt ! Si vous cliquez sur le nom dans le terminal, rien ne se passe : c'est du texte, et il ne donne pas d'actif lien, mais cela confirme que hello.txt est là où il devrait être. Tapez cd Si vous écrivez uniquement la commande cd elle-même, mais ne fournissez pas d'argument (c'est-à-dire le nom du dossier vers lequel elle doit aller), elle vous renverra au répertoire racine par défaut, vous verrez donc l'image suivante sur la ligne active : username:~ $ Pour revenir à un dossier pset1, composez cd workspace et appuyez sur Entrée. Puis cd pset1 entrez à nouveau. Vous pouvez également remplacer ces deux commandes par une seule, plus authentique : cd workspace/pset1
Bonjour c!
Enfin, ce moment est venu ! Commençons la programmation. Dans notre dossier pset1 dans l'EDI, créez un fichier appelé hello.c (l'extension est requise), ouvrez-le dans un nouvel onglet (nous pensons que vous vous souvenez comment procéder dans le paragraphe précédent). IMPORTANT! Les lettres doivent être en minuscules, Linux est sensible à la casse. Hello.c et hello.c sont des fichiers différents. Sur le côté droit de la fenêtre CS50 IDE, tapez exactement le même texte que celui que vous voyez ci-dessous. Oui, vous pouvez le copier, mais il est plus utile de le saisir. Les lettres sont de couleurs différentes car l'IDE CS50 dispose d'une coloration syntaxique. Il met en évidence les blocs de texte avec de la couleur pour une meilleure lisibilité. Les couleurs ne sont pas enregistrées dans le fichier lui-même ; elles ne sont visibles que dans l'EDI. S'ils sont là, alors l'EDI comprend C et vous avez indiqué qu'il s'agit de C dans l'extension de fichier (*.c). Si vous appeliez le même fichier hello.txt, le texte serait d'une seule couleur. Assurez-vous d'avoir tout tapé exactement comme dans l'exemple, sinon vous attraperez le premier bug =). Encore une fois, nous attirons votre attention sur la différence entre les lettres minuscules et majuscules. Le caractère \n déplace le curseur vers la ligne suivante et le texte saisi ensuite ne collera pas à la sortie du programme. Oh ouais, et n'oubliez pas le point-virgule (;). Il s'agit d'un séparateur important pour les instructions de programme ; C ne voudra pas travailler sans eux. Cliquez sur Fichier > Enregistrer (ou commande ou Ctrl-s). Vous avez remarqué que l'astérisque devant le nom du fichier a disparu ? Si oui, les modifications ont été enregistrées. Cliquez n'importe où dans la fenêtre du terminal sous votre code et assurez-vous que vous êtes dans ~/workspace/pset1 (si ce n'est pas le cas, cliquez sur cd et appuyez sur Entrée, puis cd workspace/pset1 et entrez à nouveau). Votre ligne active devrait ressembler à ceci : Assurons-nous que le fichier hello.c est exactement là où il devrait être. Tapez et appuyez sur Entrée. Vous voyez hello.c aussi ? Sinon, revenez en arrière de quelques étapes et créez à nouveau le fichier dans le répertoire souhaité. ... Vient maintenant le moment solennel : on croise les doigts et... on tape : et les doigts croisés on appuie sur Entrée. Exactement bonjour, pas bonjour.c. Si tout ce que vous voyez devant vous après cette action est la deuxième ligne active, qui ressemble exactement à la précédente, alors tout fonctionne ! Votre code source a été traduit en code machine ou objet (c'est-à-dire dans la séquence de 0 et de 1). Ce code peut maintenant être exécuté (c'est-à-dire que le programme peut être exécuté !). Pour ce faire, tapez : dans la ligne de commande, appuyez sur Entrée. Si vous n'avez pas modifié le texte entre les "", vous verrez ci-dessous : Si vous tapez maintenant la commande et appuyez sur Entrée, vous verrez un nouveau fichier hello, avec hello.c et hello.txt. Le premier bonjour doit avoir un astérisque après le nom, ce qui indique qu'il s'agit d'un fichier exécutable, c'est-à-dire celui avec lequel vous lancez le programme. #include int main(void) { printf("hello, world\n"); } username:~/workspace/pset1 $lsmake hello./hellohello, worldls
Insectes?
Si après la commande make vous voyez des erreurs, il est temps de procéder au premier débogage ! Des inscriptions telles que « déclaration attendue » signifient que vous avez fait une faute de frappe quelque part. Vérifiez à nouveau le code ci-dessus, mais faites très attention à tous les détails. Attention! Les descriptions des erreurs sont fournies en anglais. Si ce n'est pas clair, utilisez un moteur de recherche, Google Translate ou posez une question dans les commentaires. Une fois que vous avez corrigé les erreurs, n'oubliez pas de sauvegarder votre code en utilisant Fichier > Enregistrer (ou commande- ou Ctrl-s), cliquez à nouveau à l'intérieur de la fenêtre du terminal et tapez make hello (Assurez-vous simplement que vous êtes dans ~ /workspace/pset1 en premier). S'il n'y a plus d'erreurs, exécutez le programme en tapant la commande. ./hello En théorie, la phrase précieuse devrait apparaître devant vous, entre guillemets de l'opérateur printf, qui commande « imprimer ». Si la fenêtre du terminal semble trop petite, cliquez sur l'icône plus (+) encerclée à côté de hello.c.
Vérification de l'exactitude
L'application check50 est intégrée à l'IDE CS50. Il fonctionne à partir de la ligne de commande et vérifie les erreurs de certains programmes. Si vous n'y êtes pas encore, allez dans le répertoire ~/workspace/pset1 en exécutant la commande dans le terminal : cd ~/workspace/pset1 Maintenant, exécutez ls , vous verrez au moins un fichier hello.c. Assurez-vous que le nom du fichier ressemble à ceci et non, par exemple, Hello.c ou hello.C. Vous pouvez renommer un fichier en exécutant la commande mv source destination source - le nom du fichier actuel, destination - le nouveau nom du fichier. mv (de l'anglais move) est un utilitaire de renommage. Si vous avez accidentellement nommé le fichier Hello.c, tapez la ligne : mv Hello.c hello.c Après vous être assuré que le fichier s'appelle exactement hello.c, appelons le programme de vérification check50. Veuillez noter que 2015.fall.pset1.hello est un identifiant unique pour le problème « hello world ». check50 2015.fall.pset1.hello hello.c Si le programme est exécuté correctement, vous verrez : Matériel supplémentaire pour les cours CS50 : Semaine 1 (cours 3 et 4) - 2 Des smileys verts signifient que le test a réussi. Vous pouvez également voir l'URL au bas de la sortie check50, mais elle est réservée aux employés (cependant, si vous êtes intéressé, consultez-la !). check50 exécute 3 tests : si le fichier hello.c existe, si hello.c se compile et si l'application produit une ligne indiquant "hello, world\n". Si vous voyez des émoticônes rouges tristes, cela signifie que vous avez un bug. :( 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 Ici, check50 n'a pas trouvé hello.c, et le smiley rouge indique que vous avez fait une erreur dans le nom ou que vous avez téléchargé le fichier au mauvais endroit. Les émoticônes jaunes « neutres » signifient que les tests n’ont pas été exécutés. Et par où peuvent-ils commencer si le programme ne trouve pas le fichier à vérifier ? Voici une autre option qui apparaîtra si vous modifiez le texte que la fonction printf() doit afficher : :) hello.c exists :) hello.c compiles :( prints "hello, world\n" \ expected output, but not "hello, world" check50 signale que la ligne hello, world\n était attendue, mais quelque chose d'autre est apparu. check50 ne compte pas les points pour avoir terminé le cours, mais vérifie si le résultat du devoir diffère de ce qui était attendu. Et cela vous permet de vérifier cela avant de confirmer l'exactitude de la tâche dans le cours (nous vous expliquerons comment procéder plus tard).
Bases du C : comparaison avec Scratch
Bonjour tout le monde dans Scratch et C :
Matériel supplémentaire pour les cours CS50 : Semaine 1 (cours 3 et 4) - 3 #include int main(void) { printf("hello, world\n"); }
  • Matériel supplémentaire pour les cours CS50 : Semaine 1 (cours 3 et 4) - 4représente une fonction qui imprime les "mots" d'un sprite dans une bulle de bande dessinée dans Scratch, il existe une fonction printf en C qui fait la même chose, mais sans les dessins animés.
  • main - en anglais - « main ». Point d'entrée au programme. Pareil que Matériel supplémentaire pour les cours CS50 : Semaine 1 (cours 3 et 4) - 5.
Cycle sans fin
Matériel supplémentaire pour les cours CS50 : Semaine 1 (cours 3 et 4) - 6 traduit en C : while (true) { printf("hello, world\n"); } while (true) fait la même chose : la boucle continue son travail tant que (tandis que) la valeur est vraie (l'expression booléenne « true » ou « one »). Cette boucle fonctionnera sans fin.
Une boucle qui affiche 10 fois une phrase à l'écran
Scratch Matériel supplémentaire pour les cours CS50 : Semaine 1 (cours 3 et 4) - 7 C for (int i = 0; i < 10; i++) { printf("hello, world!\n"); } i est une variable compteur ; sa valeur est modifiée par l'opérateur d'incrémentation i++, l'augmentant de 1 à chaque itération de la boucle. Initialement, i reçoit la valeur 0 à l'aide de l'opérateur d'affectation =. Attention! Comme en Java, en C l'égalité est notée ==, l'opérateur d'affectation =. Autrement dit, a = 5 signifie que la variable a a reçu la valeur 5, et (a= =5) signifie une expression de Boulogne (si a est égal à 5, alors l'expression est vraie, sinon égale, alors fausse) . La boucle s’arrêtera lorsque i « grandira » jusqu’à 9. C’est facile à calculer, la boucle sera exécutée 10 fois. Ainsi, si vous devez répéter quelque chose un certain nombre de fois, en C vous définissez une boucle for (int i = 0 ; i < 10 ; i++). Autre exemple : Matériel supplémentaire pour les cours CS50 : Semaine 1 (cours 3 et 4) - 8 Et la même chose traduite en C : int counter = 0; while (true) { printf("%i\n", counter); counter++; }
  • le compteur stocke la valeur en C et Scratch. En C, nous définissons int counter = 0 au lieu de Matériel supplémentaire pour les cours CS50 : Semaine 1 (cours 3 et 4) - 9.
  • Nous marquons le type de variable comme int pour plus de clarté : i est un entier (de l'anglais integer, entier).
  • Le %i que nous utilisons dans printf à la ligne quatre est un espace réservé nous indiquant d'imprimer l'entier décimal, tout comme nous disons à printf de remplacer l'espace réservé par la valeur prise par la variable compteur.
Expressions booléennes
Matériel supplémentaire pour les cours CS50 : Semaine 1 (cours 3 et 4) - 10 C'est la même chose que (x < y) ((x < y) && (y < z))
Conditions
Matériel supplémentaire pour les cours CS50 : Semaine 1 (cours 3 et 4) - 11 Et l’équivalent « merde » : Matériel supplémentaire pour les cours CS50 : Semaine 1 (cours 3 et 4) - 12 Et la première phrase incompréhensible ? Nous en reparlerons plus tard, dans la section « Bibliothèques ». #include
Expressions conditionnelles
Ces gars-là vérifient si une condition (une expression logique, une question à laquelle on ne peut répondre que par « oui » ou « non ») est vraie, et si c'est le cas, ils effectuent certaines actions liées à cette condition. Un exemple tiré de la vie : s'il pleut (en supposant qu'il pleuve) et que je suis dehors (je suis dehors quand il pleut), j'ouvre mon parapluie. if (condition) { //исполнить, если meaning истинно } Une option plus compliquée : si la condition est remplie, effectuez une action ; sinon, effectuez une autre action. if (condition) { //выполнить действие } else { //выполнить другое действие, если condition ложно } Exemple : si vous avez plus de 18 ans, autorisez l'accès. S'il est inférieur, il ne sera pas approuvé. Matériel supplémentaire pour les cours CS50 : Semaine 1 (cours 3 et 4) - 12
Opérateur de sélection
switch (n) { case const1: // если n equals const1, выполнить break; // condition совершилось — выйти из выбора case const2: // если n equals const2, выполнить break; ... default: // если n не equals ни одной из констант, выполнить break; } Exemple : si n = 50, imprimez "CS50 est Introduction à l'informatique I", si n = 51, imprimez "CS51 est Introduction à l'informatique II", sinon imprimez "Désolé, je ne connais pas ce cours !" 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; }
Cycles
while : vérifie la condition, puis exécute l'action tant que la condition est vraie. while (condition) { // выполнять, пока истина } do/while est différent en ce sens que la première fois, il exécute l'action sans vérifier la condition, puis la vérifie uniquement. Si la condition est vraie, il répète l'action jusqu'à ce que la condition devienne fausse. do { ) // выполнять, пока истина } while (condition); La boucle for répète une action un nombre de fois spécifié. Matériel supplémentaire pour les cours CS50 : Semaine 1 (cours 3 et 4) - 13 Les boucles peuvent être imbriquées les unes dans les autres. Dans ce cas, à chaque étape de la boucle externe, la boucle interne sera entièrement exécutée. Matériel supplémentaire pour les cours CS50 : Semaine 1 (cours 3 et 4) - 14
Types de données de base en C
types de données de base en C
Bibliothèques C
Vous vous êtes probablement déjà demandé ce que signifie la première ligne d'un programme C : quel est son rôle et est-il possible de s'en passer ? La ligne #include fait une chose très importante : elle inclut des bibliothèques de code déjà écrit dans votre programme. Le nom de la bibliothèque connectée est entouré de crochets angulaires (<>) et possède une extension (.h). S'il n'y avait pas de bibliothèques, alors n'importe quelle action, même la plus élémentaire, devrait être décrite encore et encore à chaque fois. Bibliothèque que nous avons connectée#include contient des fonctions d’entrée/sortie. C'est ce qui nous permet d'utiliser la fonction printf() pour imprimer à l'écran. Autrement dit, si nous n'avions pas écrit la ligne #include , но оставor в теле программы функцию printf (), при попытке запуска мы бы получor ошибку! Потому что без этой библиотеки компилятор не знает, что такое printf (). Есть библиотеки стандартные, они составляют словарный запас языка. Функция printf() не встроена в компьютер, но входит в стандартную библиотеку языка C. То есть некий программист ранее написал её и включил в библиотеку. Теперь другие могут ею пользоваться, не изобретая велосипед. Whatбы компилятор её «понял», подключаем . Есть и другие стандартные библиотеки, используемые в процессе прохождения CS50. Например, библиотека строк, где описаны операции со строками (определение длины, сложение и прочее). По сравнению с другими популярными языками программирования, количество стандартных библиотек C очень невелико. Но есть самописные, чаще всего — более узкоспециализированные библиотеки. Так, библиотека была создана специально для студентов CS50. Самое время сделать важное замечание: помимо написания программ, решения задач с помощью собственного codeа, хороший разработчик обладает еще одним важным навыком: знанием инструментов, уже написанных и умением использовать их (чужие библиотеки), чтобы не тратить время на изобретение «колеса». Так, если вы находитесь в процессе решения нудной or сложной задачи, которая при этом кажется довольно распространенной, приучайтесь задавать себе вопрос: «а не написал ли её решение кто-нибудь другой?» Велики шансы, что так оно и есть, и вы можете найти эту функцию в существующей библиотеке. В технических терминах, библиотека — это двоичный файл, полученный путем объединения в коллекцию an objectных файлов, используя компоновщик. Объектные файлы — это те файлы с расширением (*.o), которые вы получаете при компиляции приложений.
Структура библиотек C
Когда программист пишет библиотеку, code распределяется по двум типам файлов — заголовочный файл (header, расширение *.h) и файл реализации (implementation, расширение *.c). Заголовочный файл содержит code, описывающий ресурсы библиотеки, которые вы можете использовать. То есть описания переменных, функций, структур, типов и прочее. Если вам интересно, что содержит та or иная библиотека, нужно заглянуть именно в заголовочный файл. В терминале CS50 IDE (и других средах Linux) вы можете вызвать приложение less для просмотра файлов и открыть с его помощью интересующую вас библиотеку: less /usr/include/stdio.h Файл откроется прямо в терминале. Правда, для новичков он будет очень трудночитаемым. Matériel supplémentaire pour les cours CS50 : Semaine 1 (cours 3 et 4) - 15 Whatбы выйти из less, нажмите q на клавиатуре. Заголовочный файл не содержит code функций, что служит примером очень важного понятия — сокрытия данных or инкапсуляции. Пользователю системы незачем знать «внутренности» библиотек, ему достаточно, чтобы она работала. Если вы прошерстите stdio.h, то не найдете там реализации printf(), хотя How её использовать, вы уже знаете. Это сделано для того, чтобы защитить данные от вмешательства, которое порой может плохо отразиться на системе. Так, если кто-то изменит реализацию функции printf() в библиотеке, это отразится на всех тех программах, которые её используют. Любознательным будет интересно, где спрятана реализация. Согласно конвенции (соглашения, принятые в мире программирования) такой code хранят в файле с расширением (*.c). После компиляции библиотеки на основе двух файлов с одинаковым именем, но разным расширением создается an objectный файл, который собран так, чтобы создать файл с двоичным codeом библиотеки. Matériel supplémentaire pour les cours CS50 : Semaine 1 (cours 3 et 4) - 16 Author библиотеки передает программисту, который хочет её использовать, два file — с двоичным codeом, а также заголовочный файл. Таким образом, файл с исходным codeом программисту не нужен. Точнее, он может быть нужен, если программист хочет что-то поменять в самой библиотеке и перекомпorровать её под собственные нужды. Whatбы воспользоваться функциями библиотеки в своей программе нужно проделать следующее: 1. Включить заголовочный файл в программу с помощью строки #include В случае стандартных библиотек достаточно указать Name библиотеки в угловых скобках: #include <Name_библиотеки.h> Если библиотека, которую вы хотите подключить, лежит в той же папке, что и ваша программа, подключайте её следующим образом: #include “Name_библиотеки.h” 2.Присоединить бинарный файл для компиляции. Это очень важный шаг, поскольку, How мы говорor выше, заголовочный файл не содержит реализации элементов библиотеки. Whatбы это сделать, нужно вызвать компилятор clang с флагом –l и идущим непосредственно за ним названием библиотеки. Например, компонуем библиотеку cs50: clang hello –lcs50 Clang — один из компиляторов. Для компиляции можно также использовать уже знакомую вам программу make. По сути, она вызывает clang с определенными аргументами командной строки.
И снова Hello C: разбор синтаксиса простейших программ
Директива #include подключает библиотеку ввода/вывода . Программы в C состоят из функций, а те — из операторов и переменных. Функция — это кусок codeа, в котором уже есть or подаются Howие-то данные, а Howие-то данные получают в результате её исполнения. Фигурные скобки { } ограничивают тело функции — описание того, что она должна делать. printf() из стандартной библиотеки stdio выводит любую строку на экран. Строки заключаются в двойные кавычки, а символ “\n” означает перевод курсора на новую строку. Пример: функция «посчитать квадрат целого числа». Передаем функции данные, в нашем случае — число, которое нужно возвести в квадрат. Затем в ней прописывается алгоритм умножения числа на самое себя, и результат этого умножения она выдает на выходе. int sqr(int a) { return a*a; } int sqr(int a) — название функции. В скобках — её аргумент a, это то, что подается на вход функции. Это How переменная в уравнении. То есть, если мы хотим узнать квадрат числа 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, How и любом языке, есть такой элемент, How комментарий or примечание в коле программы, предназначенное не для компьютера, а для понимания людей. Например, описание, что именно делает code. Компилятор комментариев не видит. Комментирование программ — очень важный момент, поскольку порой разобраться в чужом (и даже своем) codeе очень сложно. //пример однострочного комментария /** а это – многострочного **/ #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() вызывается с пустыми скобками, потому что её аргументы определены How void.
Еще немного о вводе/выводе в C
Вы, наверное, уже успели заметить странные символы %d и %f в скобках оператора printf. Дело в том, что функция printf выводит данные в следующем обобщенном виде: рrintf ("управляющая строка", аргумент1, аргумент2,...); Управляющая строка содержит компоненты трех типов:
  • символы, которые выводятся на экран дисплея;
  • спецификаторы преобразования, которые вызывают вывод на экран очередного аргумента из последующего списка;
  • управляющие символьные константы.
Спецификатор преобразования начинается со знака % и заканчивается символом, задающим преобразование. Некоторые из таких символов:
  • с: meaningм аргумента является символ;
  • d or i: десятичное целое число;
  • f: десятичное число с плавающей точкой;
  • s: строка символов.
То есть, %d означает, что на экране появится целое десятичное, а %f — десятичное с плавающей запятой. What если нам нужно, чтобы пользователь ввёл данные с клавиатуры? Для этого можно использовать функцию scanf( ), прототип которой также лежит в библиотеке stdio. Whatбы считать с экрана вещественное число, в программе нужно написать строку scanf("%d", &a); Давайте перепишем нашу программу так, чтобы пользователь сам вводил число, которое нужно возвести в квадрат. Matériel supplémentaire pour les cours CS50 : Semaine 1 (cours 3 et 4) - 17
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION