jueves, 29 de agosto de 2013

EJERCICIOS DE REPASO EN C

Ejercicios para entregar en la primera semana( en C)

I. Ejercicio de completar código #1:
Programa en C++ que calcula el promedio de los módulos profesionales de los alumnos egresado de CECyTES, ademas que determine si estos alumnos por su promedio serán titulado automáticamente  o deberá realizar un trabajo para titularse. Lo anterior depende de si el alumno obtuvo un promedio mayor o igual a 8.5.


II. Ejercicio para completar el código #2:
Realizar el programa en C++ que realice la conversión de pesos a dolares y viceversa. (Aplicar la estructura de control que pregunte al usuario si desea hacer de nuevo otra conversión).

*Los dos ejercicios anteriores están en tu correo, si no los tienes, bájalos e imprimirlos para su revisión, junto con sus corridas, utilizando el while para ambos.

III. Realizar un programa que presente un menú de opciones: 
      1. Calcular el área de un rectángulo  
      2. Calcular el pago de un cliente por la compra de dos artículos  
      3. Calcular el promedio de tres calificaciones parciales
      4. Calcular el área de un circulo

IV. Realizar un programa que calcule el pago de cada uno de 25 clientes que asistieron al supermercado, se sabe que cada cliente solo compro dos artículos; además este programa debe acumular las compras de dichos clientes).

V. Calcular el área de 5 triángulos y al final deberá sumar dichas áreas. Se sabe que todos los triángulos tienen diferente altura, pero la misma base que es de 20 cm.

EN LA SECCIÓN DE COMENTARIOS: 
SELECCIONA UNO DE LOS 5 PROBLEMAS Y EXPLICA CUAL ES EL PROCEDIMIENTO A SEGUIR, ASÍ COMO EL TIPO DE ESTRUCTURA QUE SE DEBE APLICAR: SECUENCIAL, SELECTIVA O CÍCLICA (REPETITIVA).

miércoles, 28 de agosto de 2013

Pasar de programar en C a C++

PROGRAMA EN LENGUAJE C

#include<stdio.h>

int main()
{
    int radio;
    float area, perimetro;

    // SALIDA: mensaje un pantalla
    printf("Introduce el radio del circulo: ");

    //ENTRADA: recibir dato desde teclado
    scanf("%d", &radio);

    // calculos
    area = 3.1416 * radio * radio;
    perimetro = 3.1416 * radio * 2;

    //SALIDA: resultado en pantalla
    printf("El area es %.2f y el perimetro %.2f", area, perimetro);
    getch();

    return 0;
}

MISMO PROGRAMA PERO EN LENGUAJE C++
 
#include<iostream>         // librería principal de C++
using namespace std;      // esta línea de comando es necesaria para que acepte cout y cin
 
int main()
{
    int radio;
    float area, perimetro;
 
    // SALIDA: mensaje un pantalla
    cout << "Introduce el radio del circulo: "  // en vez de usar printf();
 
    //ENTRADA: recibir dato desde teclado
    cin >> radio;                                                       // en vez de usar scanf();
 
    // calculos
    area = 3.1416 * radio * radio;
    perimetro = 3.1416 * radio * 2;
 
    //SALIDA: resultado en pantalla
    cout << "El area es " << area << " y el perimetro " << perimetro;
    cin.get();cin.get();                                             // En vez de usar getch();
 
    return 0;
}

Pedir un dato en C
scanf("modificador", &nombre de la variable);
Pedir un dato en C++
cin >> nombre de la variable;
Mostrar un dato en C
printf("Dato: modificador", nombre de la variable);
Mostrar un dato en C++
cout << "Dato: " << nombre de la variable;
Librerías en C++
Por simple convención las librerías en C terminan en ‘.h’ (punto hache). Todas las librerías de C sirven para C++, sin embargo, también por convención, se elimina la terminación ‘.h’ y mejor se agrega ‘c’ al principio.
Libreria en C   Librería en C++  
math.h              cmath
string.h       cstring
time.h       ctime  
etcetera.
El ‘namespace’
C como lenguaje tiene un conjunto de palabras reservadas, como por ejemplo: if, for, while, int, float, … C++ es una 
ampliación, por lo tanto tiene que agregar nuevas palabras reservadas. Éstas palabras reservadas están en un ‘namespace’ (espacio de nombres). En específico cout y cin están en el namespace std (standard).
Si no declararamos que vamos a usar el namespace std (using namespace std;), cada vez que deses usar cout
tendríamos que escribir std::cout.
#define
Esta se coloca antes de la palabra reservada main(), es decir, en la cabecera junto con el llamado de las librerías 
(#include<>)
En C al usar getch(); nos da una pausa en el programa, lo cual en C++, seria la línea de comando cin.get();cin.get(); la cual nos da la misma unción, es decir, una pausa, al finalizar el programa.
Con la directiva #define podemos definir antes del main que en vez de usar cin.get();cin.get(); usemos pause.
de la siguiente forma:
#define   pause  cin.get();cin.get();
Por ejemplo, si deseas que durante la ejecución, el valor de Pi que es 3.1416 aparezca como una constante y se 
sustituya por la variable Pi, se realiza una sustitución de una palabra o valor por otro.
…significa que cada vez que escribamos PI en nuestro programa, C++ lo interpretará como 3.14159265, como una simple sustitución.
#define <Aquí va el nombre> <Después de un espacio va el valor>
#define   Pi    3.1416


ESCRIBE EN LA SECCION DE COMENTARIOS, ¿CUALES SON LAS DIFERENCIAS MAS MARCADAS ENTRE PROGRAMAR EN C Y EN C++?






lunes, 26 de agosto de 2013

Tipos de Datos

Los tipos de datos se define como el posible rango de valores que una variable puede tomar durante la ejecución del programa y a lo largo de toda la vida útil del propio programa.
La asignación de tipos a los datos tiene dos objetivos principales:
Por un lado, detectar errores en las operaciones
 
Por el otro, determinar cómo ejecutar estas operaciones

Una ventaja de los lenguajes tipeados es que se requiere menos esfuerzo en depurar (corregir) los programas gracias a la gran cantidad de errores que detecta el compilador.

Existen muchas formas de clasificar los tipos de datos, por ejemplo:

TIPOS DE DATOS en C++
Datos simples (Estándar)
üCorresponde a los tipos de datos definidos por el compilador.

üCada tipo de dato tiene un rango diferente de valores asociados que son los que una variable puede tomar.

üLos tipos de datos simples en c++ se pueden clasificar en Enteros y Reales

ØTipos enteros: char, short, int long, enum.
ØTipos reales: float, double.
Ø
üCada tipo entero puede ser calificado por las palabras signed (con signo) ó unsigned (sin signo).

Datos Estructurados
üA diferencia de los tipos de datos simples que sólo pueden almacenar un valor,
los datos estructurados o estructuras de datos pueden recolectar varios valores simultáneamente.
üLos tipos estructurados de datos se componen de tipos de datos simples.

üEstos tipos de datos pueden ser estáticos, dinámicos, externas.

Estructura de Datos


Como ya todos sabemos, las computadoras fueron diseñadas o ideadas como una herramienta mediante la cual podemos realizar una gran cantidad de operaciones de cálculo complicadas en un lapso de tiempo muy corto. Pero la mayoría de las aplicaciones para el cual se utiliza la computadora tienen que ver con el almacenamiento y acceso a grandes cantidades de información.
Toda la información que se procesa en las computadoras son un conjunto de datos simples  o estructurados.

Debido que al trabajar con datos simples (enteros, reales, booleanos, carácter, etc.) por si solo no nos dicen nada, ni nos sirve de mucho, es necesario trabajar con estructuras de datos adecuadas a cada necesidad.

Las estructuras de datos son una colección de datos cuya organización se caracteriza por las funciones de acceso que se usan para almacenar y acceder a elementos individuales de datos.
Una estructura de datos se caracteriza por:
  • Pueden descomponerse en los elementos que la forman.
  • La manera en que se colocan los elementos dentro de la estructura afectará la forma en que se realicen los accesos a cada elemento.
  • La colección de los elementos y la manera en que se accede a ellos puede ser encapsulada.

ESTRUCTURAS DE CONTROL

ESTRUCTURA SELECTIVA SIMPLE

if...else

Lo utilizamos cuando se aplica una condición, para lo cual hay dos conjuntos de sentencias las cuales van entre { }, una para si se cumple la condición y otra para cuando esta no se cumpla.

sintaxis:

if (condicion)
    {
    conjunto de sentencias si la condición SI se cumple, todas 
    finalizadas con ";".
    } 
else
   {
   conjunto de sentencias si la condición NO se cumple, todas   
   finalizadas con ";".
   }

ESTRUCTURA SELECTIVA MULTIPLE
switch 

La Sentencia selectiva switch se utiliza:
  •   Para seleccionar una de varias alternativas.
  •  Cuando la selección se basa en el valor de una variable simple o una expresión de control o selector. 
  •  El valor del selector debe ser entero.



Reglas de uso:
La variable selector o expresión de control no puede ser string o real.
La sentencia switch requiere un valor compatible con entero. El valor puede ser variable, constante, una llamada de función o una variable.
El valor después de cada etiqueta case debe ser una constante.
El final del enunciado case está marcado típicamente por un break. Dicha sentencia permite que el programa abandone la estructura switch omitiendo los demás casos.
La etiqueta default indica al programa lo mismo que la sentencia else en la sentencia de if, es decir, se ejecuta cuando el usuario edita el valor que no esta en la lista de valores.
Cuando se requiere realizar una misma acción para distintos valores de la expresión evaluada, se coloca una sentencia case por cada valor. Sin ninguna acción, y la acción común se pone al final.

Switch (a){
case 1:case 2:case 3:  sentencias para el valor 1, 2 y  3; break;
case 4: sentencias para el valor 4; break;
}

EJEMPLO:
Switch (dia)
{
case 1: Printf(“Lunes”); break;
case 2: Printf(“Martes”); break;
case 3: Printf(“Miercoles”); break;
case 4: Printf(“Jueves”); break;
case 5: Printf(“Viernes”); break;
case 6: Printf(“Sabado”); break;
case 7: Printf(“Domingo”); break;
default: printf(“No es un dia de la semana”); break;
}

ESTRUCTURAS REPETITIVAS.

Corresponde a la ejecución repetitiva de una secuencia de sentencias, mientras se cumple una determinada condición. Poseen una sola entrada y una sola salida.
Las estructuras que repiten una secuencia de sentencias un número determinado de veces se denomina bucle o lazo, y se llama ITERACIÓN al hecho de repetir la ejecución de una secuencia de sentencias.

SENTENCIA while




Esta estructura permite evaluar una condición lógica y ejecuta el cuerpo del bucle si la condición lógica es verdad.
Si la condición lógica es falsa NO SE EJECUTA el cuerpo del bucle.

While (condición lógica) sea verdad
{
Sentencia(s);
}


SENTENCIA for

Esta estructura es para los ciclos con numero determinado de iteraciones, es decir, se sabe previamente a la ejecución, cuando va a terminar de ejecutarse. Por ejemplo, si se va a calcular el promedio de 10 alumnos, se ejecuta mientras la la condicion se cumpla, es decir mientras la iteracion sea menor o igual a 10.

Sintaxis:

for (inicializacion, condicion lógica; incremento)
     {
     sentencia 1;
     sentencia 2;
     .
          .
    sentencia n;
    }

Para lo cual deberás declarar la variable que representa la interación como entera, ademas si deseas que se acumulen los valores calculados, deberás inicializar en cero la variable de dicho acumulador.

Ejemplo:

#include<stdio.h>
#include<conio.h>
int main()
float num, producto,total=0;   // Se inicializa el valor de total en cero
int x;                                          // Se declara la variable de la iteración como entera
for(x=1;x<3;x++)                      // se inicializa en 1 la iteracion, mientras esta sea menor 
                                                  // a tres y finalmente se incrementa en 1.
   {
    printf("Valor del numero: ");
    scanf("%f",&num));
    producto=num*7;
    printf("El producto es: %.1f", producto);
    total=total+producto;                     // Se agrega el acumulador.
    }
printf("El total de productos es: %.1f",total); // Se imprime la salida fuera del ciclo for 
                                                                           // para que incluya todos los ciclos
getch( );
return 0;
}