Академический Документы
Профессиональный Документы
Культура Документы
Un poco de Historia
32 Palabras Reservadas
Comentarios.
Identificadores.
Constantes.
Variables.
Operadores.
Sentencias o instrucciones.
Macros del pre-procesador.
Comentarios
Comentarios multi-línea
Comienzan con /* y terminan con */
//Esto es un comentario
/* Esto también es
un comentario */
Identificadores
sumaMatrices
Utilizar el subguión para separar palabras intermedias.
suma_Matrices
Emplear nombres cortos para optimizar. (i, j, k, cont)
Constantes
Constantes de carácter.
Ej. ‘a’, ‘0’, ‘\0x5’, ‘\0’, ‘\n’, ‘\t’, ‘$’, ’\\’, NULL
Constantes enteras.
Ej. 5, +5, -5, \05, \0x5, 5L, 5U, 5lu, etc.
Constantes reales.
Ej. 0.5f, 0.5, 5e-01f, 5.0e-01, (float)5, etc.
#define
Se utiliza para asignar un identificador a una constante.
#define PI 3.1416
#define NCOLS 20
Variables
Una variable es una localidad de memoria cuyo valor puede
ser cambiado durante la ejecución del programa.
const
Operadores
Operadores Aritméticos
Operadores Relacionales
Operadores Lógicos
Operadores de Asignación
Operadores de Dirección
Operadores de Bits
Operadores Aritméticos
Operador Nombre Descripción
+ Suma 5+2 → 7
- Resta 5-2 → 3
* Multiplicación 5*2 → 10
/ División 5/2 → 2
% Módulo 5%2 → 1
(tipo de dato) “Cast” forzado (double)5 →
5.0
== Igual a if (a==‘s’)
!= Diferente de if (a!=null)
Operadores Lógicos
Operador Nombre Descripción
Importante:
FALSO es igual a cero.
VERDADERO es diferente de cero
= a=2; a=2;
++ n++; n=n+1;
-- n--; n=n-1;
+= n+=2; n=n+2;
-= n-=2; n=n-2;
*= n*=2; n=n*2;
/= n/=2; n=n/2;
%= n%=2; n=n%2;
Operadores de Bits
Operador Nombre Descripción
~ Complemento A1 c=~a;
|= n|=7; n=n|7;
^= n^=0x03; n=^0x03;
= n=0x7f; n=0x7f;
Operadores De Dirección
Operador Nombre Descripción
* Operador Me da el valor que
indirecció está almacenado en una
n dirección de memoria.
También sirve para
declarar una variable
apuntador.
Variables Apuntador
Sirven para almacenar una dirección de memoria.
Utilizan el operador & para obtener la dirección.
Se deben inicializar con NULL (equivale a cero).
Se declaran como:
Precedencia de Operadores
, Evaluación
Sentencias (Instrucciones)
{
sentencia1;
sentencia2;
:
sentencian;
}
Sentencias de Selección.
if – else, switch – case, ?:
Sentencias de Repetición.
do – while, while, for
Sentencias de Salto.
return, break, continue
Estructura de un programa en C
Ejemplos de un Programa en C
-----------------------------------------------------------
#include <stdio.h>
#include <math.h>
#define VALOR 5.7
#include <stdio.h>
#define FACTOR 2
int doble(int valor);
int main()
{
int indice = 2;
printf(“El doble de %d es %d\n”, indice, doble(indice));
return 0;
}
int doble(int valor)
{
return (valor * FACTOR);
}
Sentencia if-else
if (expresión)
sentencia;
else
sentencia;
if (expresión)
{
sentencia1;
sentencia2;
}
else
{
sentencia1;
sentencia2;
}
Sentencia switch-case
Arreglos Unidimensionales
Ejemplo:
int valores[10];
float datos[5]={1.3,2.8,4.89,0.0,5.7};
char pais[]=“MÉXICO”;
char *nombre=“VLADIMIR”;
Ejemplo:
int num[50];
Para el compilador:
num es igual a &num[0]
/* La dirección del elemento 0 */
int register i, j, k;
Ejemplo:
int register i;
int num[50];
Ejemplo:
int register i;
double datos[100];
double temp;
for (i=0; i<100; i++)
{
scanf(“%lf”,&temp);
fflush(stdin); /* stdin=entrada estándar */
num[i]= temp;
}
Ejemplo:
double cubo[3][3][3];
Arreglos de Caracteres
Ejemplo:
char nombre[31]; /* Uso sólo 30 */
LA FUNCIÓN printf
Sintaxis:
printf ("formato", var1, var2, ..., varN)
LA FUNCIÓN scanf
Sintaxis:
scanf("formato", &var1, &var2, ..., &varN)
#include stdio.h
main(){
float metros,resul,pulg;
int resul2,pulg2;
clrscr();
getch();
}
#include stdio.h
#include conio.h
void main(){
int prim,seg,resul;
char oper;
clrscr();
if(oper=='+')
resul=prim+seg;
if(oper=='-')
resul=prim-seg;
if(oper=='*')
resul=prim*seg;
if(oper=='/')
main(){
float uno,dos,tres;
clrscr();
else
printf("\nEl triangulo es isoceles");
getch();
}
#include stdio.h
main(){
int alumnos,edad,counter=1;
float promedio,sumaedad=0;
clrscr();
while(1){
sumaedad=sumaedad+edad;
if(counter==alumnos){
break;
}
counter++;
}
promedio=sumaedad/counter;
printf("\nLa edad promedio de %d alumno(s) es %.1f
años",counter,promedio);
getch();
}
#include stdio.h
void main(void){
int notas,reprobados;
clrscr();
int c=1,calif,rep=0;
while(c<=not){
if(calif<7){
rep++;}
c++;
}
return(rep);
}
#include stdio.h
void main(void){
int max=30,matr[29],numalumn;
char calif[29];
clrscr();
numalumn=leedato(matr,calif,max);
printf("\nEl numero de alumnos capturados es %d",numalumn);
despliega(matr,calif,numalumn);
}
int leedato(int *mats,char *califs,int maximo){
int n=0;
while(1){
if(n>=maximo){
printf("\nEl arreglo se encuentra lleno");
getch();
break;
}
printf("\n\nMatricula del alumno %d: ",n+1);
scanf("%d",mats);
if(*mats==0){
break;
}
printf("\nCalificacion del alumno %d: ",n+1);
scanf("%d",califs);
mats++;
califs++;
int i=1;
while(1){
if(i>numcap){
break;
}
printf("\nLa calificacion del alumno %d es
%d",*mats,*califs);
i++;
mats++;
califs++;
}
getch();
}
#include stdio.h
#include ctype.h
void main(void){
int rango1,rango2,incremento;
char tipo;
clrscr();
tipo=tipoConv();
leeDatos(&rango1,&rango2,&incremento);
return caract;
}
int suma=*ran1,incremento=*inc,rango2=*ran2;
float conversion;
while(suma<=rango2){
conversion=(((suma)*9)/5)+32;
printf("\n%d §C ----------------------------- %.1f
§F",suma,conversion);
suma=suma+incremento;
}
getch();
}
int suma=*ran1,incremento=*inc,rango2=*ran2;
int conversion;
while(suma<=rango2){
conversion=((suma-32)*5)/9;
printf("\n%d §F ----------------------------- %d
§C",suma,conversion);
suma=suma+incremento;
}
getch();
}
#include stdio.h
#include ctype.h
void main(void){
int n;
char cad[50];
clrscr();
while(1){
if(*s==' ' || *s=='\t'){
s++;
}
else break;
#include stdio.h
#include ctype.h
void main(void){
int n;
char cad[50];
clrscr();
int c=0;
while(1){
if(*s=='\0'){
break;
}
c++;
#include stdio.h
#include ctype.h
#include string.h
#include stdlib.h
if(strcmp(ps[np-1],"GUARDA")==0){
for(i=0,j=1;j<(np-1);i++,j++){
arreglo[i]=atoi(ps[j]);
printf("\n%d",arreglo[i]);
}
}
if(strcmp(ps[np-1],"LISTA")==0){
for(i=1;i<(np-1);i++){
puts(ps[i]);
}
}
#include stdio.h
#include stdlib.h
#include string.h
op1=atof(sarg[1]);
op2=atof(sarg[3]);
if(strcmp(sarg[2],"+")==0)
resul=op1+op2;
else if(sarg[2][0]=='-')
resul=op1-op2;
else if(strcmp(sarg[2],"*")==0)
resul=op1*op2;
else if(sarg[2][0]=='/')
resul=op1/op2;
else{
printf("\nOperador invalido: '%s'",sarg[2]);
return;
}
printf("\n\nEl resultado es %.1f",resul);
getch();
#include string.h
#include stdio.h
#include ctype.h
void main(void){
char txt[30][50],opcion;
int llenas=0,max=30,actual;
while(1){
opcion=toupper(getch());
if(opcion=='S')
break;
if(opcion=='A')
agrega_linea(txt,&llenas,max,&actual);
if(opcion=='L')
lista(txt,&llenas);
if(opcion=='R')
reemplaza_linea(txt,llenas,&actual);
if(opcion=='I')
inserta(txt,&llenas,actual,max);
}
}
/**********************************************************
****************/
void agrega_linea(char t[][50],int *ll,int max,int *act){
if(*ll==max){
printf("\n\nMemoria insuficiente...");
return;
}
printf("\n\n>");
fflush(stdin);
gets(t[*ll]);
*ll=*ll+1;
*act=*ll;
}
/**********************************************************
****************/
int i=0;
printf("\n\n");
while(i<*ll){
puts(t[i]);
i++;
}
getch();
}
/**********************************************************
****************/
if(ll==0){
printf("\n\nNo existe informacion a reemplazar");
getch();
return;
}
modif_actual(act,ll);
if(*act==-1){
printf("\n\nLa linea seleccionada no existe...");
getch();
}
else{
/**********************************************************
***************/
if(act==-1){
printf("\n\nLa linea seleccionada no existe...");
getch();
}
else{
j=*ll-1;
while(j>=act-1){
strcpy(t[j+1],t[j]);
j--;
}
printf("\n\nInserta la nueva linea: ");
fflush(stdin);
gets(t[act-1]);
(*ll)++;
}
}
#include stdio.h
#include conio.h
#include ctype.h
#include string.h
#include stdlib.h
struct DIREC{
char nombre[35];
char tele[20];
} ;
void main(){
char opcion;
FILE *archivo;
archivo=fopen("TELE.DAT","rb+"); /* usar opción "wb+"
para crear el archivo .DAT y después cambiar a "rb+" */
while(1){
clrscr();
gotoxy(1,25);
printf(" *** PRESIONE LA LETRA RESALTADA PARA
ESCOGER LA OPCION ***");
gotoxy(1,4);
opcion=toupper(getch());
if(opcion=='S')
break;
switch(opcion){
case 'N':{
lee(archivo);
break;
}
case 'L':{
imprime(archivo);
break;
}
case 'B':{
pack(archivo);
break;
}
case 'C':{
consulta2(archivo);
break;
}
case 'O':{
ordena(archivo);
/**********************************************************
***********/
if((c%2)!=0){
textattr(6+5*5);
/* textcolor(LIGHTGRAY);*/
printf("\n");
cprintf("%d.- %-30s
%16s",c,reactivo.nombre,reactivo.tele);
normvideo();
}
else{
textattr(6+5*4);
/* textcolor(WHITE);*/
printf("\n");
cprintf("%d.- %-30s
%16s",c,reactivo.nombre,reactivo.tele);
normvideo();
}
if(y==23){
getch();
y=0;
}
y++;
c++;
}
/**********************************************************
***********/
fflush(stdin);
printf("Nombre : ");strupr(gets(reactivo.nombre));
if(strlen(reactivo.nombre)<30){
if(busca_Clave2(a,reactivo.nombre)==0){
printf("Tel‚fono : ");gets(reactivo.tele);
fseek(a,0,SEEK_END);
fwrite(&reactivo,sizeof(struct DIREC),1,a);
}
else{
printf("\n\nYa existen esos datos!!!");
getch();
}
}
else{
printf("\n\nM ximo 25 letras por
nombre...");
printf("\n\nEl programa puede da¤arse si
repite este error!!!");
getch();
}
}
/**********************************************************
***********/
p=busca_Clave2(a,nombre);
if(p!=0){
fseek(a,(p-1)*sizeof(struct DIREC),SEEK_SET);
fread(&r,sizeof(struct DIREC),1,a);
printf("\n\n\n");
textcolor(LIGHTGRAY);
cprintf("NOMBRE
TELEFONO");
normvideo();
printf("\n%-20s %30s",r.nombre,r.tele);
getch();
}
else{
printf("\n\nLa informaci¢n solicitada no existe
...");
getch();
}
}
/**********************************************************
***********/
s=0;
i=0;
while(1){
if(s>=j)
break;
r=temp[s];
fseek(a,i*sizeof(struct
DIREC),SEEK_SET);
fwrite(&r,sizeof(struct DIREC),1,a);
s++;
i++;
}
printf("\n\nSus archivos han sido
ordenados alfab‚ticamente...");
getch();
/**********************************************************
***********/
if(p!=0){
while(1){
fseek(a,i*sizeof(struct DIREC),SEEK_SET);
if(fread(&r,sizeof(struct DIREC),1,a)==0)
break;
if(strcmp(r.nombre,clave)!=0){
fseek(a,i*sizeof(struct DIREC),SEEK_SET);
fwrite(&r,sizeof(struct DIREC),1,t);
}
i++;
}
fclose(t);
fclose(a);
Basicos
#include <stdio.h>
int main( )
{
int i,j;
i=3;
j=4;
printf("Hola el mundo \n");
printf("Valor i:%d \nValor j:%d \n",i,j);
}
/* Salida en pantalla:
Hola el mundo
Valor i:3
Valor j:4 */
#include <stdio.h>
int main( )
{
short s;
int l;
float f;
#include <stdio.h>
int global;
int main ( )
{
int l1,l2;
{
int global,l1;
printf("Introduzca tres valores enteros separados
por un espacio:\n");
scanf("%d%d%d",&global,&l1,&l2);
printf("Desplegado 2, valor de global,l1,l2:");
printf("%d,%d,%d\n",global,l1,l2);
}
#include <stdio.h>
int main()
{
#include <stdio.h>
int main()
{
#include <stdio.h>
int main()
{
int x;
#include <stdio.h>
int main()
{
int i,j,k,mayor;
if (mayor < k)
mayor = k;
switch (var) {
case c1:
case c2: Bloque 1
Bloque 2
break;
case c3:
case c4: Bloque 3
Bloque 4
case c5: Bloque 5
case c6:
case c7:
case c8: Bloque 6
break;
default: Bloque 7
}
Bloque 8
#include <stdio.h>
int main()
{
int opcion;
#include <stdio.h>
int main()
{
char letra;
printf(''De una letra: '');
scanf(''%c'',&letra);
switch (letra) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u': printf(''Es una vocal minuscula\n'');
break;
case 'A':
case 'E':
case 'I':
case 'O':
case 'U': printf(''Es una vocal MAYUSCULA\n'');
break;