JavaRush /Blog Java /Random-ES /Materiales adicionales para las conferencias CS50: Semana...
Masha
Nivel 41

Materiales adicionales para las conferencias CS50: Semana 1 (conferencias 3 y 4)

Publicado en el grupo Random-ES
CS50 en materiales adicionales rusos. Tareas de la semana 1

Objetivos de la primera semana.

  • Familiarícese con los comandos básicos de Linux
  • Aprenda la sintaxis básica de C y resuelva algunos problemas.
  • Empieza a pensar con más claridad =)
IDECS50
Para completar las tareas, CS50 ofrece un IDE (Entorno de desarrollo integrado) en la nube. Para usarlo, crea una cuenta en la plataforma edX y regístrate en el curso original . Después de eso:
1. Vaya a cs50.io, seleccione edX de la lista, ingrese su nombre de usuario y contraseña, haga clic en Enviar 2. Ingrese la información de su cuenta edX, haga clic en Volver a ID.CS50.NET . cs50.io 3. Estamos esperando: se está creando tu espacio virtual. espacio virtual cs50 4. ¡Listo! cs50 idea
Línea de comando y lanzamiento de CS50 IDE
En la parte inferior de la ventana del IDE de CS50, en la pestaña Terminal, hay una ventana de terminal o panel de línea de comando. Puede ingresar comandos de cadena aquí: puede hacer lo mismo que con la interfaz de ventana, por ejemplo, iniciar aplicaciones, eliminar y crear archivos, instalar software. Si nunca ha trabajado con la línea de comandos, este método probablemente le parezca engorroso: debe recordar los comandos y escribirlos en lugar de hacer clic en iconos y botones. Hasta cierto punto esto es cierto, entonces se inventó la interfaz de ventana. Sin embargo, la línea de comando está disponible en todos los sistemas operativos y a los administradores les encanta. Y todo porque a veces no se puede vivir sin él. En la ventana IDE de la terminal, verá una línea misteriosa: nombre de usuario:~/espacio de trabajo $ en lugar de "nombre de usuario" habrá un nombre generado automáticamente (según sus datos de registro). Haga clic en la ventana de terminal, escriba: update50 Presione Enter. El comando le pide al sistema que se actualice. Verá aparecer líneas en la terminal que describen el proceso de instalación. ¡No cierre CS50 IDE hasta que vea la actualización completa! . Después de esto, volverá a aparecer la línea predeterminada, la que tiene tu nombre.
Trabajando en el IDE
Creemos una carpeta donde se almacenarán sus archivos. Haga clic derecho en ~/workspace (su directorio raíz) en la esquina superior izquierda de CS50 IDE , seleccione Nueva carpeta . Cambie el nombre de la carpeta pset1 (si escribió mal el nombre, haga clic derecho en su carpeta y seleccione Cambiar nombre ). cs50 ide cambiar el nombre de la carpeta Luego haga clic derecho en la carpeta pset1 y seleccione Nuevo archivo . Aparece el archivo Untilted, vamos a cambiarle el nombre hello.txt . cs50 idea Haga doble clic en hola.txt. En CS50 IDE verá una nueva pestaña y un campo a la derecha donde podrá escribir. Si ha hecho esto, preste atención al símbolo de asterisco (*) que aparece antes del nombre del archivo en la pestaña, un indicador de que se han realizado cambios en el archivo, pero no se han guardado. Materiales adicionales para las conferencias CS50: Semana 1 (conferencias 3 y 4) - 1 Guarde el archivo yendo a *Archivo > Guardar o usando comando + S (en máquinas Apple) o Ctrl + S (en PC). El asterisco debería desaparecer. Comprobemos si el archivo está donde debería estar. Hagamos esto usando la línea de comando, es hora de acostumbrarse :). Como antes, la línea activa en la terminal se ve así: username:~/workspace $ Espacio de trabajo: el directorio de trabajo actual (el que está abierto en el entorno de trabajo). La tilde (~) indica el directorio raíz (en él se encuentra el espacio de trabajo). Tenga en cuenta que el espacio de trabajo en la terminal es el mismo que el ícono ~/workspace en la esquina superior izquierda del IDE CS50. Vamos a practicar. Haga clic en cualquier lugar de la terminal, escriba la línea de comando ls y presione Entrar. Estas dos letras minúsculas, abreviaturas de "lista", mostrarán una lista de archivos y carpetas ubicados dentro del directorio del espacio de trabajo actual. ¡Entre otras cosas, verás el pset1 que creaste ! Ahora abramos nuestra carpeta usando el comando. Escribimos cd pset1 o más detalladamente: cd ~/workspace/pset1 El comando cd (cambiar directorio) cambia el directorio activo, en nuestro caso a ~/pset1 La línea activa ha cambiado a username:~/workspace/pset1 $ Esto confirma que ahora está en el directorio ~/workspace/pset1 (la línea significa "Estoy en pset1 dentro del espacio de trabajo carpeta, que está en la carpeta raíz, indicada por ~"). Ahora escriba. ¡ ls Verá el archivo hello.txt ! Si hace clic en el nombre en la terminal, no sucede nada: es texto y no da un enlace, pero confirma que hello.txt está donde debería estar. Escriba cd Si escribe solo el comando cd en sí, pero no proporciona un argumento (es decir, el nombre de la carpeta a la que debe ir), le devolverá al directorio raíz predeterminado, por lo que verá la siguiente imagen en la línea activa: username:~ $ Para volver a una carpeta pset1, marque cd workspace y presione Entrar. Luego cd pset1 ingrese nuevamente. También puedes reemplazar estos dos comandos por uno más auténtico: cd workspace/pset1
¡Hola C!
¡Por fin ha llegado este momento! Empecemos a programar. Dentro de nuestra carpeta pset1 en el IDE, crea un archivo llamado hello.c (la extensión es obligatoria), ábrelo en una nueva pestaña (creemos que recuerdas cómo hacerlo del párrafo anterior). ¡IMPORTANTE! Las letras deben estar en minúsculas, Linux distingue entre mayúsculas y minúsculas. Hello.c y hello.c son archivos diferentes. En el lado derecho de la ventana IDE de CS50, escriba exactamente el mismo texto que ve a continuación. Sí, puedes copiarlo, pero es más útil escribirlo. Las letras son de diferentes colores porque el IDE CS50 tiene resaltado de sintaxis. Resalta bloques de texto con color para una mejor legibilidad. Los colores no se guardan en el archivo en sí; sólo son visibles en el IDE. Si están ahí, entonces el IDE entiende C y usted indicó que es C en la extensión del archivo (*.c). Si llamaras al mismo archivo hello.txt, el texto sería de un color. Asegúrese de haber escrito todo exactamente como en el ejemplo; de lo contrario, detectará el primer error =). Nuevamente llamamos su atención sobre la diferencia entre letras minúsculas y mayúsculas. El carácter \n mueve el cursor a la siguiente línea y el texto ingresado a continuación no se mantendrá junto con la salida del programa. Ah, sí, y no te olvides del punto y coma (;). Este es un separador importante para las sentencias del programa; C no querrá trabajar sin ellos. Haga clic en Archivo > Guardar (o comando- o Ctrl-s). ¿Notas que el asterisco delante del nombre del archivo ha desaparecido? En caso afirmativo, los cambios se han guardado. Haga clic en cualquier lugar de la ventana de terminal debajo de su código y asegúrese de estar dentro de ~/workspace/pset1 (si no es así, haga clic en cd y presione Enter, luego cd workspace/pset1 y Enter nuevamente). Su línea activa debería verse así: Asegurémonos de que el archivo hello.c esté exactamente donde debería estar. Escriba y presione Entrar. ¿Ves hello.c también? De lo contrario, retroceda un par de pasos y vuelva a crear el archivo en el directorio deseado. ... Ahora llega el momento solemne: cruzamos los dedos y... escribimos: y con los dedos cruzados pulsamos Enter. Exactamente hola, no hola.c. Si todo lo que ves frente a ti después de esta acción es la segunda línea activa, que se ve exactamente igual a la anterior, ¡entonces todo está funcionando! Su código fuente ha sido traducido a código de máquina u objeto (es decir, en la secuencia de 0 y 1). Ahora este código se puede ejecutar (es decir, ¡se puede ejecutar el programa!). Para hacer esto, escriba: en la línea de comando, presione Enter. Si no cambió el texto encerrado entre las "", verá lo siguiente: Si ahora escribe el comando y presiona Enter, verá un nuevo archivo de saludo, junto con hello.c y hello.txt. El primer saludo debe tener un asterisco después del nombre, lo que indica que se trata de un archivo ejecutable, es decir, aquel con el que inicias el programa. #include int main(void) { printf("hello, world\n"); } username:~/workspace/pset1 $lsmake hello./hellohello, worldls
¿Insectos?
Si después del comando make ves errores, ¡es hora de realizar la primera depuración! Inscripciones como "declaración esperada" significan que cometió un error tipográfico en alguna parte. Verifique el código anterior nuevamente, solo tenga mucho cuidado con todos los detalles. ¡Atención! Las descripciones de los errores se proporcionan en inglés. Si no te queda claro utiliza un buscador, Google Translate o haz una pregunta en los comentarios. Una vez que haya corregido los errores, no olvide guardar su código usando Archivo > Guardar (o comando- o Ctrl-s), haga clic nuevamente en el interior de la ventana del terminal y escriba make hello (Solo asegúrese de estar en ~ /workspace/pset1 primero). Si no hay más errores, ejecute el programa escribiendo el comando. ./hello En teoría, la frase preciada debería aparecer frente a usted, entre comillas del operador printf, que ordena "imprimir". Si la ventana de la terminal parece demasiado pequeña, haga clic en el ícono más (+) con un círculo al lado de hello.c.
Comprobando la corrección
La aplicación check50 está integrada en el IDE de CS50. Funciona desde la línea de comando y verifica algunos de los programas en busca de errores. Si aún no está allí, vaya al directorio ~/workspace/pset1 ejecutando el comando en la terminal: cd ~/workspace/pset1 Ahora ejecute ls y verá al menos un archivo hello.c. Asegúrese de que el nombre del archivo se vea así y no, digamos, Hello.c o hola.C. Puede cambiar el nombre de un archivo ejecutando el comando mv source destination origen: el nombre del archivo actual, destino: el nuevo nombre del archivo. mv (del movimiento inglés) es una utilidad para cambiar el nombre. Si accidentalmente nombró el archivo Hello.c, escriba la línea: mv Hello.c hello.c Después de asegurarnos de que el archivo se llama exactamente hello.c, llamemos al programa de verificación check50. Tenga en cuenta que 2015.fall.pset1.hello es un identificador único para el problema "hola mundo". check50 2015.fall.pset1.hello hello.c Si el programa se ejecuta correctamente, verá: Materiales adicionales para las conferencias CS50: Semana 1 (conferencias 3 y 4) - 2 Caras sonrientes verdes significan que la prueba pasó. También puede ver la URL en la parte inferior del resultado de check50, pero es solo para empleados (sin embargo, si está interesado, ¡compruébelo!). check50 ejecuta 3 pruebas: si el archivo hello.c existe, si hello.c se compila y si la aplicación produce una línea que dice "hola, mundo\n". Si ves emoticonos rojos tristes, significa que tienes un error. :( 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 Aquí check50 no encontró hello.c y el emoticón rojo indica que cometió un error en el nombre o cargó el archivo en el lugar equivocado. Los emoticonos amarillos "neutrales" significan que las pruebas no se ejecutaron. ¿Y por dónde empezar si el programa no encuentra el archivo que hay que comprobar? Aquí hay otra opción que aparecerá si cambia el texto que debe generar la función printf(): :) hello.c exists :) hello.c compiles :( prints "hello, world\n" \ expected output, but not "hello, world" check50 informa que se esperaba la línea hola, mundo\n, pero apareció algo más. check50 no cuenta los puntos por completar el curso, pero verifica si el resultado de la tarea difiere de lo esperado. Y te permite verificar esto antes de confirmar la corrección de la tarea dentro del curso (te diremos cómo hacerlo más adelante).
Conceptos básicos de C: comparación con Scratch
Hola mundo en Scratch y C:
Materiales adicionales para las conferencias CS50: Semana 1 (conferencias 3 y 4) - 3 #include int main(void) { printf("hello, world\n"); }
  • Materiales adicionales para las conferencias CS50: Semana 1 (conferencias 3 y 4) - 4representa una función que imprime las "palabras" de un objeto en un globo cómico en Scratch, hay una función printf en C que hace lo mismo, solo que sin los dibujos animados.
  • principal - en inglés - “principal”. Punto de entrada al programa. Igual que Materiales adicionales para las conferencias CS50: Semana 1 (conferencias 3 y 4) - 5.
ciclo sin fin
Materiales adicionales para las conferencias CS50: Semana 1 (conferencias 3 y 4) - 6 traducido a C: while (true) { printf("hello, world\n"); } while (verdadero) hace lo mismo: el bucle continúa su trabajo mientras (mientras) el valor es verdadero (la expresión booleana “verdadero” o “uno”). Este bucle se ejecutará sin cesar.
Un bucle que muestra una frase en pantalla 10 veces
Scratch Materiales adicionales para las conferencias CS50: Semana 1 (conferencias 3 y 4) - 7 C for (int i = 0; i < 10; i++) { printf("hello, world!\n"); } i es una variable de contador; su valor lo cambia el operador de incremento i++, incrementándolo en 1 en cada iteración del ciclo. Inicialmente, a i se le asigna el valor 0 usando el operador de asignación =. ¡Atención! Como en Java, en C la igualdad se denota por ==, el operador de asignación =. Es decir, a = 5 significa que a la variable a se le ha asignado el valor 5, y (a= =5) significa una expresión de Boulogne (si a es igual a 5, entonces la expresión es verdadera, si no es igual, entonces falsa) . El ciclo se detendrá cuando i "crezca" a 9. Es fácil de calcular, el ciclo se ejecutará 10 veces. Entonces, si necesita repetir algo un cierto número de veces, en C define un bucle for (int i = 0; i < 10; i++). Otro ejemplo: Materiales adicionales para las conferencias CS50: Semana 1 (conferencias 3 y 4) - 8 Y lo mismo traducido a C: int counter = 0; while (true) { printf("%i\n", counter); counter++; }
  • El contador almacena valor en C y Scratch. En C configuramos int counter = 0 en lugar de Materiales adicionales para las conferencias CS50: Semana 1 (conferencias 3 y 4) - 9.
  • Marcamos el tipo de variable como int para aclarar: i es un número entero (del inglés entero, entero).
  • El signo %i que usamos en printf en la línea cuatro es un marcador de posición que nos indica que imprimamos el entero decimal, tal como le decimos a printf que reemplace el marcador de posición con el valor que toma la variable del contador.
Expresiones booleanas
Materiales adicionales para las conferencias CS50: Semana 1 (conferencias 3 y 4) - 10 Es lo mismo que (x < y) ((x < y) && (y < z))
Condiciones
Materiales adicionales para las conferencias CS50: Semana 1 (conferencias 3 y 4) - 11 Y el equivalente a “mierda”: ¿ Materiales adicionales para las conferencias CS50: Semana 1 (conferencias 3 y 4) - 12 Qué pasa con la primera frase incomprensible? Más sobre esto más adelante, en la sección "Bibliotecas". #include
Declaraciones condicionales
Estos chicos comprueban si alguna condición (una expresión lógica, una pregunta que sólo puede responderse con "sí" o "no") es cierta y, de ser así, realizan algunas acciones relacionadas con esa condición. Un ejemplo de la vida: si llueve (suponiendo que llueve) y estoy afuera (estoy afuera cuando llueve), abro mi paraguas. if (condición) { //исполнить, если significado истинно } Una opción más complicada: si se cumple la condición, realizar una acción; si no, realizar otra acción. if (condición) { //выполнить действие } else { //выполнить другое действие, если condición ложно } Ejemplo: si eres mayor de 18 años, aprueba el acceso. Si es menor no se aprobará. Materiales adicionales para las conferencias CS50: Semana 1 (conferencias 3 y 4) - 12
Operador de selección
switch (n) { case const1: // если n es igual const1, выполнить break; // condición совершилось — выйти из выбора case const2: // если n es igual const2, выполнить break; ... default: // если n не es igual ни одной из констант, выполнить break; } Ejemplo: si n = 50, imprima "CS50 es Introducción a las Ciencias de la Computación I", si n = 51, imprima "CS51 es Introducción a las Ciencias de la Computación II", de lo contrario imprima "¡Lo siento, no estoy familiarizado con esa clase!" 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; }
Ciclos
while: verifica la condición, luego ejecuta la acción mientras la condición sea verdadera. while (condición) { // выполнять, пока истина } do/ while es diferente en que la primera vez realiza la acción sin verificar la condición, y luego solo la verifica. Si la condición es verdadera, repite la acción hasta que la condición se vuelve falsa. do { ) // выполнять, пока истина } while (condición); El bucle for repite una acción un número específico de veces. Materiales adicionales para las conferencias CS50: Semana 1 (conferencias 3 y 4) - 13 Los bucles se pueden anidar unos dentro de otros. En este caso, en cada paso del bucle exterior, el bucle interior se ejecutará por completo. Materiales adicionales para las conferencias CS50: Semana 1 (conferencias 3 y 4) - 14
Tipos de datos básicos en C
tipos de datos básicos en C
Bibliotecas C
Probablemente ya te hayas preguntado qué significa la primera línea de un programa en C: ¿ cuál es su función y es posible prescindir de ella? La línea #include hace algo muy importante: incluye bibliotecas de código ya escrito en su programa. El nombre de la biblioteca conectada está entre corchetes angulares (<>) y tiene una extensión (.h). Si no hubiera bibliotecas, entonces cualquier acción, incluso la más básica, tendría que ser descrita una y otra vez cada vez. Biblioteca que conectamos#include Contiene funciones de entrada/salida. Esto es lo que nos permite usar la función printf() para imprimir en la pantalla. Es decir, si no hubiéramos escrito la línea #include , но оставo в теле программы функцию printf (), при попытке запуска мы бы получo ошибку! Потому что без этой библиотеки компилятор не знает, что такое printf (). Есть библиотеки стандартные, они составляют словарный запас языка. Функция printf() не встроена в компьютер, но входит в стандартную библиотеку языка C. То есть некий программист ранее написал её и включил в библиотеку. Теперь другие могут ею пользоваться, не изобретая велосипед. Quéбы компилятор её «понял», подключаем . Есть и другие стандартные библиотеки, используемые в процессе прохождения CS50. Например, библиотека строк, где описаны операции со строками (определение длины, сложение и прочее). По сравнению с другими популярными языками программирования, количество стандартных библиотек C очень невелико. Но есть самописные, чаще всего — более узкоспециализированные библиотеки. Так, библиотека была создана специально для студентов CS50. Самое время сделать важное замечание: помимо написания программ, решения задач с помощью собственного códigoа, хороший разработчик обладает еще одним важным навыком: знанием инструментов, уже написанных и умением использовать их (чужие библиотеки), чтобы не тратить время на изобретение «колеса». Так, если вы находитесь в процессе решения нудной o сложной задачи, которая при этом кажется довольно распространенной, приучайтесь задавать себе вопрос: «а не написал ли её решение кто-нибудь другой?» Велики шансы, что так оно и есть, и вы можете найти эту функцию в существующей библиотеке. В технических терминах, библиотека — это двоичный файл, полученный путем объединения в коллекцию un objetoных файлов, используя компоновщик. Объектные файлы — это те файлы с расширением (*.o), которые вы получаете при компиляции приложений.
Структура библиотек C
Когда программист пишет библиотеку, código распределяется по двум типам файлов — заголовочный файл (header, расширение *.h) и файл реализации (implementation, расширение *.c). Заголовочный файл содержит código, описывающий ресурсы библиотеки, которые вы можете использовать. То есть описания переменных, функций, структур, типов и прочее. Если вам интересно, что содержит та o иная библиотека, нужно заглянуть именно в заголовочный файл. В терминале CS50 IDE (и других средах Linux) вы можете вызвать приложение less для просмотра файлов и открыть с его помощью интересующую вас библиотеку: less /usr/include/stdio.h Файл откроется прямо в терминале. Правда, для новичков он будет очень трудночитаемым. Materiales adicionales para las conferencias CS50: Semana 1 (conferencias 3 y 4) - 15 Quéбы выйти из less, нажмите q на клавиатуре. Заголовочный файл не содержит código функций, что служит примером очень важного понятия — сокрытия данных o инкапсуляции. Пользователю системы незачем знать «внутренности» библиотек, ему достаточно, чтобы она работала. Если вы прошерстите stdio.h, то не найдете там реализации printf(), хотя Cómo её использовать, вы уже знаете. Это сделано для того, чтобы защитить данные от вмешательства, которое порой может плохо отразиться на системе. Так, если кто-то изменит реализацию функции printf() в библиотеке, это отразится на всех тех программах, которые её используют. Любознательным будет интересно, где спрятана реализация. Согласно конвенции (соглашения, принятые в мире программирования) такой código хранят в файле с расширением (*.c). После компиляции библиотеки на основе двух файлов с одинаковым именем, но разным расширением создается un objetoный файл, который собран так, чтобы создать файл с двоичным códigoом библиотеки. Materiales adicionales para las conferencias CS50: Semana 1 (conferencias 3 y 4) - 16 Autor библиотеки передает программисту, который хочет её использовать, два archivo — с двоичным códigoом, а также заголовочный файл. Таким образом, файл с исходным códigoом программисту не нужен. Точнее, он может быть нужен, если программист хочет что-то поменять в самой библиотеке и перекомпoровать её под собственные нужды. Quéбы воспользоваться функциями библиотеки в своей программе нужно проделать следующее: 1. Включить заголовочный файл в программу с помощью строки #include В случае стандартных библиотек достаточно указать Nombre библиотеки в угловых скобках: #include <Nombre_библиотеки.h> Если библиотека, которую вы хотите подключить, лежит в той же папке, что и ваша программа, подключайте её следующим образом: #include “Nombre_библиотеки.h” 2.Присоединить бинарный файл для компиляции. Это очень важный шаг, поскольку, Cómo мы говорo выше, заголовочный файл не содержит реализации элементов библиотеки. Quéбы это сделать, нужно вызвать компилятор clang с флагом –l и идущим непосредственно за ним названием библиотеки. Например, компонуем библиотеку cs50: clang hello –lcs50 Clang — один из компиляторов. Для компиляции можно также использовать уже знакомую вам программу make. По сути, она вызывает clang с определенными аргументами командной строки.
И снова Hello C: разбор синтаксиса простейших программ
Директива #include подключает библиотеку ввода/вывода . Программы в C состоят из функций, а те — из операторов и переменных. Функция — это кусок códigoа, в котором уже есть o подаются Cómoие-то данные, а Cómoие-то данные получают в результате её исполнения. Фигурные скобки { } ограничивают тело функции — описание того, что она должна делать. printf() из стандартной библиотеки stdio выводит любую строку на экран. Строки заключаются в двойные кавычки, а символ “\n” означает перевод курсора на новую строку. Пример: функция «посчитать квадрат целого числа». Передаем функции данные, в нашем случае — число, которое нужно возвести в квадрат. Затем в ней прописывается алгоритм умножения числа на самое себя, и результат этого умножения она выдает на выходе. int sqr(int a) { return a*a; } int sqr(int a) — название функции. В скобках — её аргумент a, это то, что подается на вход функции. Это Cómo переменная в уравнении. То есть, если мы хотим узнать квадрат числа 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, Cómo и любом языке, есть такой элемент, Cómo комментарий o примечание в коле программы, предназначенное не для компьютера, а для понимания людей. Например, описание, что именно делает código. Компилятор комментариев не видит. Комментирование программ — очень важный момент, поскольку порой разобраться в чужом (и даже своем) códigoе очень сложно. //пример однострочного комментария /** а это – многострочного **/ #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() вызывается с пустыми скобками, потому что её аргументы определены Cómo void.
Еще немного о вводе/выводе в C
Вы, наверное, уже успели заметить странные символы %d и %f в скобках оператора printf. Дело в том, что функция printf выводит данные в следующем обобщенном виде: рrintf ("управляющая строка", аргумент1, аргумент2,...); Управляющая строка содержит компоненты трех типов:
  • символы, которые выводятся на экран дисплея;
  • спецификаторы преобразования, которые вызывают вывод на экран очередного аргумента из последующего списка;
  • управляющие символьные константы.
Спецификатор преобразования начинается со знака % и заканчивается символом, задающим преобразование. Некоторые из таких символов:
  • с: significadoм аргумента является символ;
  • d o i: десятичное целое число;
  • f: десятичное число с плавающей точкой;
  • s: строка символов.
То есть, %d означает, что на экране появится целое десятичное, а %f — десятичное с плавающей запятой. Qué если нам нужно, чтобы пользователь ввёл данные с клавиатуры? Для этого можно использовать функцию scanf( ), прототип которой также лежит в библиотеке stdio. Quéбы считать с экрана вещественное число, в программе нужно написать строку scanf("%d", &a); Давайте перепишем нашу программу так, чтобы пользователь сам вводил число, которое нужно возвести в квадрат. Materiales adicionales para las conferencias CS50: Semana 1 (conferencias 3 y 4) - 17
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION