CONCEPTOS BÁSICOS de programación
Este texto comienza recordando algunos
conceptos básicos de algoritmia, seudocódigo y diagramas de flujo. Los
elementos presentes en un algoritmo como: variables, constantes y expresiones.
Declaración de variables y asignaciones, técnicas de desarrollo de algoritmos y
ejemplos desarrollados.
OBJETIVOS
• Identificar y descomponer las
partes de un problema, para programar una solución por medio de la computadora.
• Hacer uso de herramientas de descomposición
de problemas y representación de programas.
• Emplear condiciones para la toma de
decisiones en un programa.
• Identificar el tipo de condición a utilizar
en un programa.
• Emplear ciclos repetitivos en
programas que emplean cierto número de interacciones.
• Emplear ciclos repetitivos en programas que
emplean cierto número de interacciones.
• Resolver problemas usando operadores
aritméticos y herramientas de programación.
• Resolver ejercicios matemáticos para
despertar la lógica de la programación.
• Compilar y organizar en partes la
información que componen un programa.
CONCEPTOS DE ALGORITMIA
Algoritmos: los algoritmos constituyen un
listado de instrucciones que indican el camino a seguir para dar solución a un
problema. Podríamos decir que un algoritmo es la suma de una parte lógica más
una parte de control, en donde la parte lógica especifica el conocimiento en la
solución del problema y la parte de control es la estrategia para solucionar el
problema. Características de los algoritmos:
Un algoritmo no debe ser ambiguo (Ambiguo: Que puede entenderse de
varios modos o admitir distintas interpretaciones y dar, por consiguiente,
motivo a dudas, incertidumbre o confusión).
Debe de tener una secuencia inicial Cada paso deberá tener una secuencia
sucesiva y única, es decir que deben indicar claramente el camino a seguir en
la solución del problema. El algoritmo
debe de ser siempre eficiente y dar una solución al problema o de lo contrario
deberá dar un mensaje que diga “Sin solución” Programa: un programa define un
“algoritmo”, porque constituye el conjunto de instrucciones que forman el
algoritmo (ya codificados en un lenguaje de programación). Eucarística: un
algoritmo que da o produce una solución a un problema planteado, aunque esta
solución no sea la óptima, es llamado “Heurístico”. Diagrama de flujo: El
diagrama de flujo es la representación gráfica de una secuencia de
instrucciones que conforman el algoritmo. Los símbolos más comunes y los cuales
usaremos son:
Expresiones Matemáticas
Las expresiones matemáticas son combinaciones de
símbolos y valores que indican a la computadora una secuencia de operaciones
matemáticas que debe de realizar, estas expresiones son muy similares a
las fórmulas matemáticas, pero las expresiones empleadas en computación deben
ajustarse a las limitaciones de la escritura con teclado y a algunas reglas más
que debemos conocer.
Las expresiones matemáticas típicas poseen la siguiente forma básica:
variable= valoro variable operador valoro variable
Con lo que podemos ver que el resultado de la
expresión debe de almacenarse en una variable y que en la expresión se ven
involucrados un conjunto de valores numéricos y variables que realizaran las
operaciones que indiquen los operadores matemáticos.
Los operadores matemáticos de C++ son:
§ + suma
§ – resta
§ * multiplicación
§ / división
§ % modulo o residuo
§ ( ) parentesis o agrupamiento.
El primer punto que debemos conocer es el uso de
los paréntesis, al igual que en la matemática tradicional las operaciones entre
paréntesis se resuelven desde el paréntesis más interno hacia afuera, pero
mientras que en matemáticas un paréntesis al lado de una variable o junto a
otro expresan multiplicación en programación es un error, de tal forma que:
§ x=y(a+b)
§ x=(a+b)(a/d)
Son incorrectas dado que faltan operadores que
indiquen la operación a realizar y lo correcto en programación sería
§ x=y*(a+b)
§ x=(a+b)*(a/d)
La otra cuestión importante en las expresiones es
lo que denominamos “Orden de precedencia de los operadores”, con lo cual
establecemos que existe un orden específico para realizar las operaciones y que
es el siguiente.
1. ( )
2. * / %
3. + –
Veamos una aplicación de esto en la siguiente
expresión
x=5+2*3
Si usáramos las reglas de las matemáticas
convencionales el resultado sería 21, dado que resolvemos de izquierda a
derecha, primero sumamos 5 +2 que nos da 7, que luego multiplicamos por 3 para
que nos de 21, pero en programación el resultado de esta expresión es 11, dado
que el orden de los operadores indica que primero debo resolver la
multiplicación, porque es de mayor importancia dentro del orden de precedencia,
obteniendo 6, al que le sumaremos 5 para obtener 11.
El ejemplo anterior uso operadores de diferente
valor en el orden de precedencia, pero si las operaciones involucradas son del
mismo valor, entonces se resuelve como en la matemática tradicional, de
izquierda a derecha, tal como en el caso siguiente:
x=5+3-2;
En este caso tanto la suma como la resta son del
mismo valor, por lo tanto, se resuelve de izquierda a derecha para obtener como
resultado 6.
Las Expresiones lógicas son aquellas que pueden tomar uno de dos
valores, verdadero o falso.
La importancia de estas expresiones es
la aplicación en las estructuras de control que gobiernan el flujo de un
programa.
Las expresiones lógicas se forman
combinando constantes y variables con operadores lógicos y relacionales.
Operadores Relacionales.
Los operadores relacionales se utilizan
para expresar condiciones. (comparación entre dos elementos)
OPERADORES RELACIONALES
|
|
OPERADOR
|
SIGNIFICADO
|
=
|
Igual que
|
>
|
Mayor que
|
> =
|
Mayor o igual que
|
<
|
Menor que
|
< =
|
Menor o igual que
|
<>
|
Diferente de
|
FORMATO:
Expresión1 o
valor Operador
de Relación Expresión2
o valor
|
El resultado de una condición será
siempre un dato lógico. (V(verdadero) o F (falso))
TABLAS DE VERDAD DE LOS OPERADORES
LÓGICOS
Son estructuras lógicas necesarias para
poder establecer las posibilidades de falsedad o de verdad de las expresiones
lógicas.
Ø Operador NOT (no) o
Negación: (Not p)
P
|
Not p
|
V
|
F
|
F
|
V
|
Cuando una expresión es verdadera al
negarla se convierte en falsa, de igual manera cuando una
expresión es falsa al negarla se convierte en verdadera.
Operador AND (y) o
conjunción: (p and q)
p
|
q
|
p AND q
|
V
|
V
|
V
|
V
|
F
|
F
|
F
|
V
|
F
|
F
|
F
|
F
|
La expresión p AND q, es verdadero solamente
cuando ambas son verdaderas, de lo contrario el
resultado será falso.
p
|
q
|
p OR q
|
V
|
V
|
V
|
V
|
F
|
V
|
F
|
V
|
V
|
F
|
F
|
F
|
Operador OR (o) o Disyunción inclusiva:
( p OR q)
La expresión p o q es falsa solamente
cuando ambas expresiones son falsas, caso contrario es verdadera.
Estructuras de control
Las estructuras de
control nos permiten modificar el flujo de ejecución de las instrucciones
de un programa.
En C# estas estructuras son básicamente las mismas que encuentras en C/C++.
En cuanto a las estructuras de selección son exactamente las mismas que las que conoces. A exception de la estructura switch que tiene una restricción adicional.
Las estructuras de iteración son todas iguales excepto foreach que es nueva. Esta estructura la veremos junto con las colecciones.
Las estructuras de salto tienen algunas que tal vez no conozcas, como yield, y throw las cuales también veremos más adelante.
Para empezar nos bastará con saber usar if, for, while y switch.
La instrucción if se compone de:
if(<condición>)
{
instrucciones...
}
[else
{
instrucciones...
}]
La condición debe ser un resultado booleano, esto es, que su valor sea true o false (a diferencia de C/C++ donde la condición puede ser un entero donde 0 es falso y cualquier otra cosa es verdadero).
La parte del else es opcional y las llaves {} de los bloques también son opcionales cuando el bloque se compone de una sola instrucción pero es recomendado como buena práctica siempre usarlos.
La instrucción for se compone de:
for([inicialización]; [condición de paro]; [aumento])
{
instrucciones...
}
Todas las partes son opcionales. Si no asignas una condición de paro, el for será un ciclo infinito (que se puede romper con una sentencia de salto como break). Al igual que en el if, el bloque delimitado por las llaves {} es opcional si es solo una instrucción, pero es mejor siempre usarlo.
El formato más común de for es el clásico:
for(int i=0; i<5; i++)
{
}
La instrucción while tiene la forma:
while(<condición de continuación>)
{
}
Al igual que en el if, el bloque delimitado por las llaves {} es opcional si es solo una instrucción, pero es mejor siempre usarlo; y la condición debe ser obligatoriamente un booleano.
En C# estas estructuras son básicamente las mismas que encuentras en C/C++.
En cuanto a las estructuras de selección son exactamente las mismas que las que conoces. A exception de la estructura switch que tiene una restricción adicional.
Las estructuras de iteración son todas iguales excepto foreach que es nueva. Esta estructura la veremos junto con las colecciones.
Las estructuras de salto tienen algunas que tal vez no conozcas, como yield, y throw las cuales también veremos más adelante.
Para empezar nos bastará con saber usar if, for, while y switch.
La instrucción if se compone de:
if(<condición>)
{
instrucciones...
}
[else
{
instrucciones...
}]
La condición debe ser un resultado booleano, esto es, que su valor sea true o false (a diferencia de C/C++ donde la condición puede ser un entero donde 0 es falso y cualquier otra cosa es verdadero).
La parte del else es opcional y las llaves {} de los bloques también son opcionales cuando el bloque se compone de una sola instrucción pero es recomendado como buena práctica siempre usarlos.
La instrucción for se compone de:
for([inicialización]; [condición de paro]; [aumento])
{
instrucciones...
}
Todas las partes son opcionales. Si no asignas una condición de paro, el for será un ciclo infinito (que se puede romper con una sentencia de salto como break). Al igual que en el if, el bloque delimitado por las llaves {} es opcional si es solo una instrucción, pero es mejor siempre usarlo.
El formato más común de for es el clásico:
for(int i=0; i<5; i++)
{
}
La instrucción while tiene la forma:
while(<condición de continuación>)
{
}
Al igual que en el if, el bloque delimitado por las llaves {} es opcional si es solo una instrucción, pero es mejor siempre usarlo; y la condición debe ser obligatoriamente un booleano.
En este código de ejemplo puedes ver que el método WriteLine acepta una
cadena de formato. Esto es, escribes la cadena con ciertos contenedores donde
se escribirá el valor de una variable. Estos contenedores se delimitan entre
llaves {} y contienen la posición de la variable (empezando en 0) que irá en
ese lugar. Las variables que se declaran después de la cadena, separadas por
comas. En este caso la variable 0 es i, la 1 es j y la 2 es i*j. El orden en que escribas los
contenedores en la cadena de formato no importa, por ejemplo, podríamos haber
escrito:
Console.WriteLine("{2} = {0} x {1}", i, j, i * j);
Existen varios modificadores que se pueden usar en la cadena de formato. Los puedes revisar aquí.
Console.WriteLine("{2} = {0} x {1}", i, j, i * j);
Existen varios modificadores que se pueden usar en la cadena de formato. Los puedes revisar aquí.
Programas de ejemplo con
explicación
Programa que captura 2 números y los divide en el lenguaje C#
aritmético

Explicación
1. Empezamos y declaramos todas las variables
que queramos utilizar en nuestro programa. ya que sin declarar esto nuestro
programa nunca podrá compilar.
2. Escribimos console.write. que esto
sirve para que nos muestre en pantalla cuando ejecutemos el programa.
3. Num1
= Int32.Parse(Console.ReadLine());
esto sirve para convertir a número entero y el console como les dije es para qué
capturé.
4. I realizamos
la división = num1 / num2.
5. I mostramos
en pantalla el resultado de la división de los números ingresados.
6. Gracias
espero que les sirva la explicación.
Programa que pide el nombre y lo imprima en pantalla en el lenguaje
C#
Explicación
1: Declaramos: string en
para el nombre
2: Escribimos
console.write. que esto sirve para que nos muestre en pantalla lo que deseamos
que nos aparezca en pantalla.
3: i declaramos (Console.ReadLine()); para que nos
capture el nombre ingresado.
4: i declaramos console.write para mostrar el resultado de lo ingresado.
5: gracias es pero que le sirva.
Programa que calculan el área de un rectangulo
en el lenguaje C#
Explicación
1.Declaramos con tipo
double las variables que queremos declarar.
2. declaramos console.write para mostrar la pantalla lo que queremos ingresar.
3. Int32.Parse(Console.ReadLine());
esto sirve para convertir a número entero y el console como les dije es para qué
capturé.
4.De
ahí declaramos como queremos la operación área=base*altura.
5. I
mostramos el resultado con console.write.
6.Gracias
por su atención espero que le sirva.
programas estructuras de control
Programa que dice si un número es par o no el lenguaje C#
explicación
1. Declaramos las variables
que queremos utilizar.
2. console.writeline es para que muestre en pantalla y pida los 2 números
de deseamos ingresar.
3.
Num = Int32.Parse(Console.ReadLine()); esto sirve para convertir a número
entero y el console como les dije es para qué capturé.
4. Bueno entonces declaramos
la condición if (núm/2 == 0)
5. Entonces si se cumple la condición
el resultado será que es un numero par
6. Si no dirá que no es un
numero par
Gracias por su atención
Programa que pide un multiplicador
para para ser la multiplicación con todos los números en el lenguaje C#.
Explicación
1. Declaramos la condición
int que es de numero entero y la variable n.
2. Declaramos string en la
variable linea.
3. console.writeline es para que muestre en pantalla y pida el
número de deseamos ingresar
4. declaramos la variable linea = (Console.ReadLine()); que esto nos
va servir para capturar ingresado.
5. Declaramos el ciclo for (int i =1; i<=15; i++)
6. Int i = 1; que eso se significa
que es de donde va empezar en conteo.
7. I <=15; que hasta donde
se acabará el conteo.
8. I++ es quiere decir que
se sumara de uno en uno.
9. Cuando se ingrese lo que
se le pida esta condición se ejecutara.
Gracias por su atención
Programa que pide un numero entero y
suma de 5 en 5 hasta llegar al número ingresado en el
lenguaje C#.
Explicación
1. Declaramos la condición
int que es de numero entero y la variable n.
2. Declaramos string en la
variable linea.
3. console.writeline es para que muestre en pantalla y pida el
número de deseamos ingresar
4. declaramos la variable
linea = (Console.ReadLine());
que esto nos va servir para capturar ingresado
5. Declaramos el ciclo for (int i =1; i<=n; i++)
6. Int i = 1; que eso se significa
que es de donde va empezar en conteo.
7. I <=n; que hasta donde
se acabará el conteo.
8. I++ es quiere decir que
se sumara de uno en uno.
9. Cuando se ingrese lo que
se le pida esta condición se ejecutara.
10. declaramos la condición if (1/5==0)
11. Esta condición se ejecutará cuando
ingresemos el número.
12. Gracias por su atención
Gracias espero que les sirva
Allí en el programa de división, es cierto que hay una división, pero no es una simple división. La explicación que usted hace es otra y eso es incorrecto. Corrija
ResponderEliminar