Documentos de Académico
Documentos de Profesional
Documentos de Cultura
programación en C
Programación de
Microcontroladores
¿Qué es programación en C y por qué debería
importarme?
¿Qué es un programa?
Las computadoras no son inteligentes, solo son obedientes y no se aburren.
http://www.codeblocks.org/
Usando C
C suele ser más eficiente que la mayoría de lenguajes de programación, y es
relativamente pequeño (pocos comandos). Es de los lenguajes de “bajo nivel”.
El #include <stdio.h>
casi siempre se va a
utilizar.
COMENTARIOS
No se ejecutan en el código
Comienzan con //
Al inicio del código
deberíamos poner
Un bloque inicia con /* y termina con */
nuestro nombre y
explicación breve del
código
Tipos de datos
Los más comunes son:
- characters
- integers
- floating points
TIPOS DE DATOS EN
<stdint.h>
int8_t
Entero con signo de 8 bits
-128 a 127
uint8_t
Entero sin signo de 8 bits
0 a 255
Sumando todo junto
La tabulación y
espacios son para
humanos, son
ignorados por el
compilador
El mínimo absoluto
Nos familiarizamos con como se mira un programa en C
printf(controlString [, data]);
[, data] es opcional
ejemplo
\n nueva línea
\r retorno de carro
\t tab horizontal
\’ comilla simple
\\ backslash
\b backspace
Ejemplo
Caracteres de conversión
Caracter de conversión Descripción
%d entero
%f punto flotante
%c caracter
%s cadena / string
Ejemplo
Agregando variables
Nombrando variables
Bueno Malo
age_limit last,first
amount
Variables
Definiendo una por línea Dos o más por línea
Almacenando variables
Con el igual todo lo de
la derecha se opera y
luego se almacena en
la variable
Agregando palabras a tu programa
Entendiendo el fin de cadena
C no tiene variables con nombre de cadena, utiliza arreglos de caracteres.
Para determinar dónde termina pone un cero al final (Null Zero, \0, ASCII 0)
Siempre contamos
desde 0 no desde
1
¿Cómo cambio de mes?
#include <stdio.h>
scanf()
Formato similar al printf()
char firstInitial;
Es recomendable no
hacer muchas
operaciones al mismo
tiempo
ANS = 13
Asignación compuesta
lossCount = lossCount + 1; /* Adds 1 to lossCount variable */
Lo abreviamos como
lossCount += 1;
lossCoun ++;
Funciona con otros operadores
Typecasting
Cambiamos el tipo de variable
Tomando distintos rumbos
Operadores relacionales
Ejemplos
Condicionales
if If… else
formato
if (condition)
else
if (!(isCharterMember)) {
Podemos no usar los
paréntesis que
agrupan las
conicionales
Switch Case
Permite hacer varias
comparaciones a la vez
si no usamos break, el
switch podría seguir
ejecutando las
siguientes condiciones
Otros trucos
Operador condicional “?”
relation ? trueStatement : falseStatement;
Ejemplo
(total <= 3850.0) ? (total *= 1.10): (total *= 1.05);
es equivalente a
if (total <= 3850.0)
{ total *= 1.10; }
else
{ total *= 1.05; )
sizeof()
i = sizeof(int)
ejemplo
char name[] = "Ruth Claire";
int i = 7;
printf("The size of i is %d.\n", sizeof(i));
printf("The size of name is %d.\n", sizeof(name));
Loops
While
Condición para
ejecutarse
recuerda cambiar la
condición para no
quedar en un loop
infinito
do while
Condición para do
ejecutarse { block of one or more C statements; }
while (condition)
while evalúa la
condición al inicio y
do… while al final
for
for (startExpression; testExpression; countExpression)
Break Continue
for (i=0; i < 10; i++) for (i = 1; i <= 10; i++)
{ {
printf("%d ", i) if ((i%2) == 1) // impar
if (i == 4) {
{ printf("I'm rather odd...\n");
break; // siguiente iteración
} continue;
} }
// Rest of program would follow. printf("Even up!\n");
}
Otros temas
Array
Existen arrays
multi-dimensionales
Marcas [5][5]
Ejemplos
char italCity[7] = "Verona"; /* Automatic null zero */
Ejemplos:
Acostumbramos a
poner las constantes
No usamos el símbolo = todas en mayúsculas
Ejemplo
main.c libreria.h
Puntero
El puntero es la posición en
memoria de la variable
Podemos enviar la variables
donde queremos guardar el
resultado
Evitamos el return
Punteros
int age = 19; /* Stores a 19 in age */
int * pAge = &age; /* Links up the pointer */
no necesitamos volver a
utilizar *, si ya fue
declarada
Dereferenciar
Actualizando el valor al que apuntamos
*pAge = 25; /* Stores 25 where pAge points */
re
no mb
re
Sob
Notas de los structs
Si utilizamos un struct en el heap, no podemos usar el operador “.”, si no
que usamos “->”
¿Static ?
¿De qué sirve static?
static cumple con dos funciones básicas dentro del lenguaje C:
Al usarlo sobre variables que están dentro de una función, permite que el
valor de las mismas persista entre llamadas