Translate

sábado, 6 de diciembre de 2014

Tutorial de C++ en Español # 49 - Crear Arreglos Bidimensionales

Arreglos bidimensionales

Arreglos bidimensionales.

Son aquellos llamados comúnmente matrices que contienen filas y columnas, como una tabla.


Por cada fila se navegan todas las columnas


Inicialización de los arreglos bidimensionales:

Int numeros [8][4];

int tabla [2][3]= {51,52,53,54,55,56};


51
52
53
54
55
56


Otra forma  int tabla [2][3]= {{51,52,53}{54,55,56}};



Debemos tomar en cuenta que siempre van las filas y luego las columnas.







viernes, 28 de noviembre de 2014

Arreglos Unidimensionales en C



En el siguiente video se explicará más acerca de los arreglos unidimensionales:



Arreglos Unidimensionales

¿Qué es un arreglo?

Un arreglo es una colección finita homogénea y ordenada de los de un programa.


Arreglos Unidimensionales


Un arreglo unidimensional permite almacenar N elementos del mismo tipo y acceder a ellos por medio de un índice.

Existen dos partes en los arreglos Componentes, e Índice.

Componentes: Los componentes hacen referencia a los elementos que se almacenan en cada una de las celdas o casillas.

Índice: especifica la forma de acceder a cada uno de los elementos (casillas).

En el siguiente gráfico podemos observar lo antes dicho:

15
23
8
14
A[0]              A[1]          A[2]            A[3]

El primer índice es el 0, el segundo índice es el 1, el tercero es el 2, y el cuarto es 3.

Si queremos obtener el valor del primer índice señalamos A[0] que será el número 15.




viernes, 21 de noviembre de 2014

Sentencias repetitivas


Sentencias Repetitivas


Son aquellas que se repiten un número definido o indefinido de veces, según como se plantee la ecuación.

Ejemplo 
While

//Nombre: Jorge Velasco
//Fecha: 21-Noviembre-2014
//Descripción: desarrollo de un programa que permita ingresar un número y calcule el cuadrado de este, para luego imprimir el cuadrado y el número de valores ingresados


#include <stdio.h>
main()
{
int n, acum=0, val;
printf("Ingrese el numero:");
scanf("%d", &n);
while(n>0){
val=n*n;
acum=val+acum;
printf("Ingrese valor del numero al cuadrado es: %d\n",val);
printf("\nIngrese el numero:");
scanf("%d", &n);
}
printf("El numero de valores ingresados es: %d",acum);
getch();
}





jueves, 20 de noviembre de 2014

Sentencias condicionales.

Sentencias condicionales.

Son aquellas que se utilizan cuando se evalúa una expresión y se escoge entre dos opciones.

Ejemplo:


Construye un diagrama de flujo y el correspondiente programa en C que, al recibir como datos de entrada tres valores enteros diferentes entre sí, determine si los mismos están en orden creciente.

Definición del problema:
Desarrollar un programa que permita ingresar tres números distintos y determine si estos se encuentran en orden creciente.

Planear la solución:
Proceso: para obtener el resultado de que si los números están en orden creciente ingresamos los tres números para luego compararlos entre sí, si estos son iguales se desplegará  un mensaje  diciendo “no pueden ser iguales ingrese otros números diferentes”, si no son iguales, se pasará a comparar si el primer número es menor que el segundo, si  esto no es verdad, se despliega un mensaje diciendo “No están en orden creciente”, si  es verdad se pasará a evaluar si el segundo número es menor que el tercero, si no es verdad  se despliega un mensaje diciendo “No están en orden creciente”, pero si es verdad se despliega un mensaje diciendo “ Los números se encuentran en orden creciente”

Datos de entrada: N1 (Número 1), N2 (Número 2), N3 (Número 3),

Algoritmo


Código en C.


//Nombre: Jorge Velasco
//Descripción del programa: Desarrollar un programa que al momento de ingresar 3 numeros enteros nos verifique si se encuentran en forma creciente.
//Fecha: 20 de noviembre del 2014

#include <stdio.h>
main()
{


int N1, N2, N3;
printf("\nPrograma que indica si los numeros ingresados se encuentran en orden creciente");
printf("\nIngrese el primer numero");
scanf("%d" ,&N1);
printf("\nIngrese el segundo numero");
scanf("%d" ,&N2);
printf("\nIngrese el tercer numero");
    scanf("%d" ,&N3);

if(N1<N2&&N1<N2)
if(N2<N3)
printf("\nLos numeros se encuentran ordenados en forma creciente");
else
{
printf("\nLos numeros NO se encuentran ordenados en forma creciente");
}
else
{
printf("\nLos numeros NO se encuentran ordenados en forma creciente");
}
}

getch();





martes, 18 de noviembre de 2014

Sentencias Selectivas

Switch (sentencias selectivas)

La sentencia switch es aquella que se utiliza para seleccionar entre mútltiples alternativas.


Ejemplo.

Realizar un programa que permita escoger el tipo de vehículo a utilizar de acuerdo al número que se ingrese. (1 Turismo) (2 Autobus) (3 Motocicleta)


#include <stdio.h>
main()
{
int V;
printf("Ingresar numero del vehiculo");
scanf("%d", &V );
switch (V)
{

case 1:

printf("\n\nTurismo");
break;
case 2:

printf("\n\nAutobus");
break;

case 3:
printf("\n\nMotocicleta");
break;

default :
printf("\n\nNo hay autos vayase a pie");
break;
}
getch ();

}




viernes, 14 de noviembre de 2014

Sentencias secuenciales.

Sentencias Secuenciales.

Son aquellas en las que las instrucciones se ejecutan una tras otra.

Ejemplo

Escribir un programa que imprima:
*****
*      *
*      *
*      *
*****
*      *
*      *
*      *
*****

Código en C.
//Programa impresión letra B con asteriscos
//Nombre: Jorge Velasco
//Fecha: 11 de noviembre
//Descripción: Desarrollar un programa que imprima la letra b con asteriscos
#include <stdio.h>
main()
{
 printf("*****\n");
  printf("*   *\n");
  printf("*   *\n");
  printf("*   *\n");
   printf("*****\n");
   printf("*   *\n");
  printf("*   *\n");
  printf("*   *\n");
    
     printf("*****\n");

getch();

martes, 11 de noviembre de 2014

Errores en programación en C.

ERRORES


Un error es un fallo, que en un programa puede desencadenar un resultado inesperado.

Existen errores:

De sintaxis: aparecen cuando cometemos un error de escritura, son más fáciles de identificar con respecto a los errores lógicos.

Lógicos: aparecen al plantear mal una fórmula, son más difíciles de encontrar a diferencia de los errores de sintaxis.


Depuración:

Es el proceso de encontrar y resolver problemas que tiene el programa como por ejemplo los errores.


sábado, 8 de noviembre de 2014

Elementos de la compilación en C.


  • Preprocesador:  Acepta el código, elimina los comentarios e interpreta las instrucciones
  • Compilador de C: toma el código y lo transforma en ensamblador
  • Ensamblador: Crea los archivos objetos.
  • Ligador: Se hace referencias a bibliotecas y se obtiene el ejecutable .exe 






Variable:
Es una posición con nombre de memoria donde se almacena un tipo de dato.
Su valor cambia a lo largo de la ejecución del programa.

Las variables se clasifican en:

Variables globales: Son aquellas que pueden ser vistas por todo el programa, se encuentran antes de la función main(); , estas variables utilizan más memoria que las locales.

Variables locales: son aquellas que se declaran dentro de las funciones, y son visibles sólo en aquella función, estas memorias utilizan menos memoria que las globales.


miércoles, 5 de noviembre de 2014

Operadores del lenguaje C





OPERADORES 


Operadores de asignación: =, *=, /=, %=, +=, -=

Operadores aritméticos:*/+-

Operadores de incremento: ++

Operadores de decremento: --

Operadores relacionales: ==, >=, >, <=, <, !=

Operadores lógicos: negación: (!) , Y lógico (&&), O lógico (||).

Lenguaje C



Lenguaje C


  • Es un lenguaje de programación estructurada. Lo que quiere decir que el código o algoritmo está ordenado o estructurado.
  • Es uno de los lenguajes más rápidos y potentes con una sintaxis sumamente compacta y de alta portabilidad

Características del lenguaje C:



  • Eficiente:  se ejecuta con rapidez.
  • Portátil: es independiente del sistema, es decir que se puede ejecutar en cualquier sistema.
  • Potente y flexible: puede resolver problemas de física e ingeniería.



martes, 28 de octubre de 2014

Proyecto del robot LITERAL B.

b) Trace un diagrama de flujo estructurado o escriba un seudocódigo que expliquen la lógica que permitiría al robot empezar desde la posición de sentado en una silla, ponerse de pie y dar vuelta a la silla, cruzar la habitación, dar vuelta a la otra silla, regresar a la primera silla y sentarse.
NOTA: Cabe recalcar para el desarrollo de este literal el robot cruza una habitación de 8 metros de largo sin encontrarse con nada a su paso, solo rodeando las sillas que tienen por dimensión 1 metro por 1 metro.

Definición del problema:
Programar a un robot para que pueda partir desde una silla de la posición de sentado, se levante, de la vuelta a esa silla y se dirija hacia otra ubicada a 8 metros para luego dar la vuelta a la silla, regresar a la primera silla  y luego se sentarse.
Planear la solución:
Proceso: para obtener que el robot se levante de la silla en la cual está sentado, declaramos la posición (ponerse de pie) en falso, para luego dar la instrucción de que se levante, después de esto, se dará la instrucción de girar hacia la izquierda para luego dar un paso (que será establecido un paso será igual a un metro recorrido por el robot), se repetirá los dar pasos y girar hacia la izquierda siempre y cuando el número de pasos sea igual a 5 que es el número de pasos necesarios para dar la vuelta a la silla 1, cuando  la condición sea verdadera el robot girará hacia la derecha para luego dar más pasos mientras el número de pasos sea igual a 8, los pasos se repetirán así hasta llegar a la otra silla, donde girará hacia la derecha, dará un paso y los pasos y girar a la izquierda se repetirán mientras el número de pasos sea igual a 5 que es el número de pasos para rodear la segunda silla, después girará hacia la derecha y regresará a la primera silla y se sentará  .
Datos: P (ponerse de pie), S (sentarse), GI (Girar izquierda), D (dar un paso), GD (girar derecha).

Algoritmo.





Pseudocódigo:
//Jorge Velasco 26 de octubre del 2014//
// Programar un robot que se levante de una silla, de la vuelta  esa silla, luego camine 8 metros hacia otra silla y le dé la vuelta a esa silla, para luego regresar a la primera silla y sentarse.//
Inicio
//variables
Caracteres: P, D, GI, GD.
Enteros: 8, 1, 0.
P=F
D= 1 metro.
Leer P;
Leer GI;
Leer D;
Mientras (D== 5) hacer;
Leer GI;
D= D+1
Leer D;
Fin mientras
Leer GD;
Leer D;
Mientras (D== 8) hacer;
D= D+1
Leer D;
Fin mientras
Leer GD;
Leer D;
Mientras (D== 5) hacer;
Leer GI;
D= D+1
Leer D;
Fin mientras
Leer GD;
Leer D;
Mientras (D== 8) hacer
D= D+1
Leer D;
Fin mientras
Leer GI*2;
S=F
Leer S;
Fin

Pruebas de escritorio.
P (ponerse de pie), S (sentarse), GI (Girar izquierda), D (dar un paso).
S/V
P
GI
GD
D
S
1
F
F
F
F
F


P (ponerse de pie), S (sentarse), GI (Girar izquierda), D (dar un paso).

S/V
P
GI
GD
D
S
1
V
V
V
V
V



Proyecto programación Robot LITERAL A.

Suponga que ha creado un robot mecánico que puede realizar las siguientes tareas:
• Ponerse de pie.
• Sentarse.
• Girar 90° a la izquierda.
• Girar 90° a la derecha.
• Dar un paso.
Además, el robot puede determinar la respuesta a una condición de prueba:
• ¿Estoy tocando algo?

Literal A

a) Coloque dos sillas separadas 6 metros, de modo que queden directamente una frente a la otra. Trace un diagrama de flujo estructurado o escriba un pseudocódigo que expliquen la lógica que permitiría al robot empezar desde la posición de sentado en una silla, cruzar la habitación y sentarse en la otra silla.
Definición del problema:
Programar a un robot para que pueda partir desde una silla de la posición de sentado, se levante y se dirija hacia otra ubicada a 6 metros y luego se siente.
Planear la solución:
Proceso: para obtener que el robot se levante de la silla en la cual está sentado, declaramos la posición (ponerse de pie) en falso, para luego dar la instrucción de que se levante, después de esto, se dará la instrucción de dar un paso (que será establecido un paso será igual a un metro recorrido por el robot), se repetirá los dar pasos siempre y cuando el número de pasos sea igual a 6 que es la distancia hacia la otra silla, cuando  la condición sea verdadera el robot girará dos veces hacia la izquierda que serán 180 grados para luego sentarse.

Datos: P (ponerse de pie), S (sentarse), GI (Girar izquierda), D (dar un paso).
Algoritmo:


Pseudocódigo:
//Jorge Velasco 26 de octubre del 2014//
// Programar un robot que se levante de una silla, camine 6 metros hacia otra silla y luego se siente en aquella silla.//
Inicio
//variables
Caracteres: P, D, GI.
Enteros: 6, 1, 0.
P=F
D= 1 metro.
Leer P;
Leer D;
Mientras (D== 6) hacer;
D= D+1
D;
Fin mientras,
Leer GI*2;
Leer S;
Fin

Pruebas de escritorio.
P (ponerse de pie), S (sentarse), GI (Girar izquierda), D (dar un paso).

S/V
P
GI
D
S
1
F
F
F
F



P (ponerse de pie), S (sentarse), GI (Girar izquierda), D (dar un paso).

S/V
P
GI
D
S
1
V
V
V
V

martes, 14 de octubre de 2014

Secuencias repetitivas

Sentencias repetitivas.

Toda sentencia repetitiva tiene un conjunto de instrucciones, debe tener un número finito de repeticiones, debe haber una instrucción que le permita terminar el ciclo.

Siempre se debe evaluar las condiciones antes de realizar una repetición.

Mientras: primero evalúo la condición y luego se continúa la acción.

Sintaxis.

Mientras (condición) hacer

        <acción>
Fin mientras


Tipos de variables 

Contador: Se utiliza cuando se requiere un número fijo de repeticiones.

Acumulador: va acumulando parciales por cada iteración.

Diferencia entre el contador y el acumulador.

En el contador se va sumando de 1 en 1 mientras que en el acumulador puede ser cualquier fijo (depende de la variable leída).

Video Clase: Algoritmo. Estructuras Repetitivas (Parte I)

miércoles, 8 de octubre de 2014

Lógica de programación-Estructura selectiva simple



Secuencias selectivas

Son aquellas utilizadas para seleccionar un valor entre dos o más opciones, pueden ser enteros o caracteres.



sábado, 4 de octubre de 2014

Ejercicio 2 sentencias condicionales

6) The Barking Lot es una guardería para perros. Diseñe un diagrama de flujo o pseudocódigo para lo siguiente:
a) Un programa que acepte datos para un número de ID del propietario de un perro, y nombre, raza, edad y peso de este último. Despliegue una factura que contenga todos los datos de entrada al igual que la tarifa semanal de la guardería, la cual es de $55 para perros con menos de 7 kilogramos, $75 para perros de 7 a 14 kilogramos inclusive, $105 para perros de 14.1 a 37 kilogramos inclusive, y $125 para perros con más de 37 kilogramos.
Definición del problema:
Desplegar  una factura en la cual se encuentre la  tarifa semanal a pagar  de acuerdo al peso del perro.
Planear la solución:
Proceso: Establecer una tarifa de 55 dólares si el perro tiene un peso menor a 7 kg, establecer una tarifa de 75 dólares si el perro tiene un peso de 7 a 14 kg, establecer una tarifa de 105 dólares si el perro pesa de 14.1 a 37 kg y establecer una tarifa de 125 dólares si el perro pesa más de 37 kg.
Datos de entrada: ID (ID usuario), NP (nombre del perro), R (raza del perro), E (edad del perro), P (peso del perro).  
Datos de salida: ID (ID usuario), NP (nombre del perro), R (raza del perro), E (edad del perro), P (peso del perro), Ts (tarifa semanal)
Datos adicionales: No hay

 Algoritmo:




Pseudocódigo:
//Jorge Velasco Andrade
// 08 de octubre del 2014
// Desarrollar un programa que permita ingresar el número de id del propietario, el nombre del perro, la raza del perro, la edad del perro y su peso e imprimir una factura con todos los datos ya dichos junto con la tarifa semanal de acuerdo a su peso.
Inicio
//variables
Reales positivos y caracteres: P
Imprimir “Ingrese el ID del propietario”
Leer ID
Imprimir “Ingrese el nombre del perro”
Leer NP
Imprimir “Ingrese la raza del perro”
Leer R
Imprimir “Ingrese la edad del perro”
Leer Ep
Imprimir “Ingrese el peso del perro”
Leer P
Si P<=7 Entonces
Imprimir “Su factura”
Imprimir “Ts”;
Sino
Si P<=14 Entonces
Imprimir “Su factura”
Imprimir “Ts”;
Sino
Si P<=37Entonces
Imprimir “Su factura”
Imprimir “Ts”;
Sino
Imprimir “Ts”;
 Fin si
Fin si
Fin si
Fin



viernes, 3 de octubre de 2014

Ejercicio sentencias condicionales

4) Dash Cell Phone Company cobra a sus clientes una tarifa básica de $5 por mes por enviar mensajes de texto. Las tarifas adicionales son como sigue:
• Los primeros 60 mensajes por mes, sin importar la longitud del mensaje, se incluyen en la factura básica.
• Se cobran cinco centavos adicionales por cada mensaje de texto después del 60o. mensaje, hasta 180 mensajes.
• Se cobran 10 centavos adicionales por cada mensaje de texto después del 180o. mensaje.
• Los impuestos federales, estatales y locales suman un total de 12% de cada factura.
Diseñe un diagrama de flujo o pseudocódigo para lo siguiente:
a) Un programa que acepte los siguientes datos sobre la factura de un cliente: código de área donde se encuentra (tres dígitos), número de teléfono (siete dígitos) y número de mensajes de texto enviados. Despliegue todos los datos, incluyendo la factura mensual final tanto antes como después de agregar los impuestos.
Definición del problema:
Desarrollar un programa que despliegue las facturas de un plan de mensajes de una compañía antes y después de haberle agregado los impuestos.
Planear la solución:
Proceso: para obtener el despliegue de las facturas se verificará si el número de mensajes es menor o igual a 60 si esto es verdad, el cliente pagará solo 5 dólares, si el número de mensajes esta entre los 60 y los 180 pagará 5 centavos adicionales por cada mensaje que mande, si manda más de 180 mensajes el cliente pagará 10 centavos por mensaje adicional. Además se le agregará el impuesto del 12%.
Datos de entrada: C (código de área), N (número del cliente), M (número de mensajes)           
Datos de salida: P1 (factura sin impuestos), P2 (facturas con impuestos incluidos)
Datos adicionales: 12%

Algoritmo:








Pseudocódigo:
//Jorge Velasco Andrade
// 08 de octubre del 2014
// Desarrollar un programa que muestre la factura de un plan de mensajes, antes y después de ser agregados los impuestos.
Inicio
//variables
Enteros positivos: C, N, M.
Imprimir “Ingrese el código de área”
Leer C
Imprimir “Ingrese el número”
Leer N
Imprimir “Ingrese el número de mensajes”
Leer M
Si P<=60 Entonces
Imprimir “Facturas”
Imprimir “P1”, “P2”;
Sino
Si P<=180 Entonces
Imprimir “Facturas”
Imprimir “P1”, “P2”;
Sino
Imprimir “P1”, “P2”;
Fin si
Fin si

Fin


Pruebas de escritorio





Secuencias Condicionales

Secuencias condicionales.

Son aquellas en las que se toman decisiones, se llaman también de decisión o alternativas.

En estas secuencias se comparan una o varias condiciones mediante expresiones lógicas que determinará si es una o es la otra respuesta.


Alternativas simples.

La alternativa simple presenta una condición en la cual si es verdadero (SI) realiza el proceso e imprime resultados y se finaliza el proceso, pero si es falso salta el proceso y se dirige a impresión de resultados y se finaliza el proceso.





Alternativas dobles
Una alternativa doble es aquella que permite seleccionar por medio de una condición, el siguiente bloque de ejecuciones a ejecutar.


martes, 30 de septiembre de 2014

Ejercicios de sentencias secuenciales


 Trace un diagrama de flujo o escriba un seudocódigo para representar la lógica de un programa que permita al usuario introducir un valor para una arista de un cubo.
El programa calcula el área de la superficie de un lado del cubo, el área de la superficie del cubo y su volumen. El programa da salida a todos los resultados.

Definición del problema:
Obtener el área de un lado del cubo, el área total del cubo y el volumen del cubo.
Planear la solución:
Proceso: para la obtención del área de la superficie de un lado del cubo debemos multiplicar por sí mismo 2 veces dicho lado, para la obtención del área total del cubo debemos multiplicar 2 veces  dicho lado y multiplicarlo por 6 que son el número de superficies o caras que tiene el cubo, y para la obtención del volumen debemos multiplicar por sí mismo 3 veces dicho lado.
Datos de entrada: A (que sería el lado del cubo)
Datos de salida: B (área de una cara del cubo), C (área total del cubo), V (volumen del cubo)
Datos adicionales: No hay


Algoritmo:
 














                                         
Pseudocódigo:
//Jorge Velasco. 30de septiembre del 2014//
// Obtener el área de un lado del cubo, el área total del cubo y el volumen del cubo.//
Inicio
//variables
Reales positivos: A
Imprimir “Ingrese el valor del lado del cubo”
Leer A
B= A*A
C= A*A*6
V= A*A*A
Imprimir “El área del lado del cubo es:”,
B
Imprimir “El área total del cubo es:”,
C
Imprimir “El volumen del cubo es:”,
D

Fin
Prueba de escritorio
Para A= 5
Secuencia /Variables
A
B
C
V
1
5



2

25


3


150

4



125

Para A= 10
Secuencia /Variables
A
B
C
V
1
10



2

100


3


600

4



1000


Para A= 3
Secuencia /Variables
A
B
C
V
1
3



2

9


3


54

4



27





10. Trace un diagrama de flujo o escriba un seudocódigo para representar la lógica de un programa que permita al usuario introducir valores para el salario base, las ventas totales y la tasa de comisión de un vendedor. El programa calcula y da salida al pago del vendedor agregando el salario base al producto de las ventas totales y la tasa de comisión.
Definición del problema:
Obtener el pago del vendedor agregando el salario base al producto entre las ventas totales y la tasa de comisión.
Planear la solución:
Proceso: Para obtener el pago del vendedor, al producto entre las ventas totales y la tasa de comisión le sumamos el salario base del vendedor.
Datos de entrada: Sb, Vt, Tc
Datos de salida: Pv.
Datos adicionales: No hay
Algoritmo:

 



Pseudocódigo:
//Jorge Velasco. 30de septiembre del 2014//
// Obtener el pago del vendedor, agregando el salario base al producto entre las ventas totales y la tasa de comisión del vendedor//
Inicio
//variables
Reales positivos = Sb, Vt, Tc
Imprimir “Ingrese el salario base”
Imprimir “Ingrese las ventas totales”
Imprimir “Ingrese la tasa de comisión”
Leer “Sb”
Leer “Vt”
Leer “ Tc”
Pv= (Vt*Tc)+Sb
Imprimir “El pago del vendedor es: “, Pv
Fin
Prueba de escritorio
Para Sb= 350      Vt= 20 Tc= 25
Secuencia /Variables
Sb
Vt
Tc
Pv
1
350
20
25

2



850

Para Sb= 400      Vt= 15 Tc= 20
Secuencia /Variables
Sb
Vt
Tc
Pv
1
400
15
20

2



700

Para Sb= 500      Vt= 30 Tc= 35
Secuencia /Variables
Sb
Vt
Tc
Pv
1
500
30
35

2



1550