Вы находитесь на странице: 1из 29

Codificacin en C

Como pasar de Pseudocdigo a C (con pequeos trucos de C++)

Plantilla
Librerias #include <stdio.h> #include <stdlib.h> #define PI 3.1416 int main(void){ /*Variables*/ /*Cdigo en C*/ }

Constantes

Algoritmo

Librerias
Las ms importantes son:
De entrada y salida: #include <stdio.h> Operaciones estandar: #include <stdlib.h> Funciones matemticas: #include <math.h>

Para ms informacin:
http://c.conclase.net/librerias/index.php

Constantes
En realidad son macros que sustituyen un nombre por un valor antes de la compilacin. Formato:
#define nombre_cte valor

Ejemplos:
#define #define #define #define PI 3.1416 VERDADERO 1 FALSO 0 PI2 PI*PI

Algoritmo
Dentro del algoritmo se declaran:
Entradas. Salidas. Variables. Codigo en C/C++

int main(void){ /*entradas*/ /*salidas*/ /*variables*/ /*cdigo en C*/ return(0); }

Declaracin de variables
En Pseudocdigo: a1, a2: ENTERO b: REAL c: LOGICO d: CARACTER En C: int a1,a2; float b; //double b; int c; //bool c; (C++) //(true, false) char d;

Expresiones aritmticas
En Pseudocdigo:
a1 a2 a1 a2 b b c c d 4 (2*a1)+3 - 9 9 DIV 2 9 MOD 2 9 / 2 a1 / a2 FALSO VERDAD 'a'

En C:
a1 a2 a1 a2 b b c = 4; = (2*a1)+3-9; = 9 / 2; = 9 % 2; = 9.0 / 2.0; = a1 / (float)a2; = FALSO; //c = 0; //c = false; c = VERDAD; //c = 1; //c = true; d = 'a'; //d = 97; (cdigo ASCII)

Expresiones lgicas
En Pseudocdigo:
c c c c c c 2 > 3 a1 < a2 (b >= 3.0) O (a1 <= 2) c Y (a2 = 3) NO c a1 <> a2 (distinto)

En C:
c = (2 > 3); c = (a1 < a2); c = (b >= 3.0) || (a1 <= 2); c = (c && (a2 == 3)); c = !c; c = (a1 != a2);

Salida estndar
En pseudocdigo:
ESCRIBIR ESCRIBIR ESCRIBIR ESCRIBIR "hola" "el resultado es: ", a1 a1, " + ", b, " = ", a1+b '''SaltoDeLinea'''

En C:
printf("hola"); printf("el resultado es: %i", a1); printf("%i + %f = %f", a1, b, a1+b); // |5 + 3.86000000 = 8.86000000 // printf("%3i + %5.1f = %.1f", a1, b, a1+b); // |5 + 3.9 = 8.9 printf("\n"); // \t (tabulador) \r (retorno de carro) // \b (borrar carcter)

Entrada estndar
En Pseudocdigo:
LEER a1 LEER a2, b LEER d

En C:
scanf("%i", &a1); scanf("%i %f", &a2, &b); scanf("%c", &d); //d = getchar();

Condicional simple
En Pseudocdigo:
SI condicin ENTONCES ordenes FIN_SI SI condicin ENTONCES ordenes SI_NO ordenes FIN_SI

En C:
if( condicin ){ ordenes } if( condicin ){ ordenes } else { ordenes }

Condicional compuesto
En Pseudocdigo:
EN CASO DE QUE d VALGA HACER 'a': ordenes 'b': ordenes 'c': ordenes '0': ordenes [ EN OTRO CASO: ordenes ] FIN_CASO

En C:
switch(d){ case 'a': ordenes break; case 'b': ordenes break; case 'c': ordenes break; case '0': ordenes break; [ default: ordenes }

Estructura cclica (PARA)


En Pseu docdigo:
PARA cont inicio HASTA fin [C.I. incr] HACER sentencias FIN_PARA

En C:
for(cont=inicio; cont<=fin; cont=cont+incr){ sentencias Si se utiliza decremento } cambia la condicin

cont>=fin

Ejemplo de PARA
En Pseudocdigo:
PARA cont 0 HASTA 10 sentencias FIN_PARA HACER

En C:
for(cont=0; cont<=10; cont=cont+1){ sentencias }
cont++ cont+=1

Ejemplo de PARA
En Pseudocdigo:
PARA cont 20 HASTA 10 sentencias FIN_PARA C.I. -1 HACER

En C:
for(cont=20; cont>=10; cont=cont-1){ sentencias } cont-cont-=1

Estructura cclica (MIENTRAS)


En Pseudocdigo:
MIENTRAS condicin HACER sentencias FIN_MIENTRAS

En C:
while( condicin ){ sentencias }

Ejemplo de MIENTRAS
En Pseudocdigo:
MIENTRAS edad=50 HACER sentencias FIN_MIENTRAS

En C:
while( edad == 50 ){ sentencias }

Estructura cclica (REPETIR HASTA)


En Pseudocdigo:
REPETIR sentencias HASTA condicin

En C:
do{ sentencias; }while( !(condicin) );

Ejemplo REPETIR HASTA


En Pseudocdigo:
REPETIR sentencias HASTA a>b

En C:
do{ sentencias; }while( !(a>b) );

(a <= b)

Arrays (Declaracin)
En Pseudocdigo:
Notas: ARRAY (0..20) DE REALES Edad: ARRAY (1..100) DE ENTEROS A: ARRAY (30..40) DE ENTEROS Tablero: ARRAY (1..8,1..8) DE CARACTERES

En C:
float Notas[21]; int Edad[101]; int A[11]; char Tablero[8][8];
No utilizamos la posicin 0

Arrays (uso)
En Pseudocdigo:
Notas(5) 2.5 Edad(22) Edad(15) + 1 A(32) A(num+1) * 35 LEER Tablero(8,8)
num es una variable entera

En C:
Notas[5] = 2.5; Edad[22] = Edad[15] + 1; A[32-30] = A[(num+1)-30] * 35; scanf(%c, &Tablero[8-1][8-1]);

Funciones (Declaracin)
En Pseudocdigo:
FUNCION Nombre( parametros ): Tipo ENTRADAS: SALIDAS: VARIABLES: INICIO ... DEVOLVER valor FIN

En C:
Tipo Nombre( parametros ) { ... return valor; }

Funciones (Ejemplo declaracin)


En Pseudocdigo:
FUNCION Suma(a, b): ENTERO ENTRADAS: a: ENTERO b: ENTERO SALIDAS: La suma de los 2 nmeros ...

En C:
int Suma(int a, int b) ...

Funciones (Uso)
En Pseudocdigo:
valor Suma(3, 2) ESCRIBIR Suma(valor,8) valor 8 * Suma(Suma(valor,2),6)

En C:
valor = Suma(3,2); printf(%i, Suma(valor,8) ); valor = 8 * Suma(Suma(valor,2),6);

Procedimientos (Declaracin)
En Pseudocdigo:
PROCEDIMIENTO Nombre( parametros ) ENTRADAS: SALIDAS: VARIABLES: INICIO ... FIN

En C:
void Nombre( parametros ) { ... }

Procemientos (Ejemplo declaracin)


En Pseudocdigo:
PROCEDIMIENTO Suma(a, b, VAR resul) ENTRADAS: a: ENTERO b: ENTERO SALIDAS: resul: ENTERO ...

En C:
void Suma(int a, int b, int &resul) ...

Procemientos (Ejemplo declaracin)


En Pseudocdigo:
PROCEDIMIENTO Intercambia(VAR a, VAR b) ENTRADAS: a, b: ENTEROS SALIDAS: a, b: ENTEROS (Valores intercambiados) ...

En C:
void Intercambia(int &a, int &b) ...

Procemientos (Ejemplo declaracin)


En Pseudocdigo:
PROCEDIMIENTO Ordena(VAR vector, tama) ENTRADAS: vector: ARRAY(0..1000) DE REALES (desordenado) tama: ENTERO SALIDAS: vector: ARRAY(0..1000) DE REALES (ordenado) ...

En C:
void Ordena(int vector[1001], int tama) ...
Los arrays siempre se pasan por referencia en C

Procedimientos (Uso)
En Pseudocdigo:
Suma( maximo-3, 2, valor ) Intercambia( maximo, valor ) Ordena( notas, 97 )

En C:
Suma( maximo-3, 2, valor ); Intercambia( maximo, valor ); Ordena( notas, 97 );

Вам также может понравиться