Capitulo 2 - Algoritmos - C#

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 17

Los Algoritmos

Al finalizar el capítulo, el alumno:

 Identifica la importancia de los algoritmos en el mundo de la programación de


computadoras.
 Comprende las principales formas de construir algoritmos.
 Reconoce los tipos de datos primitivos que maneja el computador.
 Comprende el concepto de variable y constante.
 Comprende el significado de un acumulador y un contador.
 Reconoce cómo elaborar expresiones matemáticas y lógicas, empleando
operadores.

Temas

1. ¿Qué es un algoritmo?
2. Características de un algoritmo
3. Importancia de analizar un problema
4. El Pseudocódigo
5. Los Diagramas de Flujo o Flujograma
6. Los tipos de datos
7. Los operadores
8. Las expresiones
9. Casuística para el desarrollo de algoritmos

.NET 4.5.1 Fundamentals Developer Visual Studio 2013 con C#


Los Algoritmos 16

1. ¿Qué es un algoritmo?

Un algoritmo, en su definición más genérica, es un método para resolver un


problema. Aplicando el concepto al ámbito de la programación, podremos afirmar
que, algoritmo es un modelo que representa la lógica de cómo se desarrolla la
solución de un problema (que se resolverá luego mediante la elaboración de un
programa), sin necesidad aún de codificarlo en un lenguaje de programación.

Eso permite a los programadores desarrollar modelos que, luego de probarlos y


depurarlos, les permitan obtener el código en un determinado lenguaje de
programación, de una manera más simple y eficiente.

Recuerde
El algoritmo es uno solo, no importa en qué lenguaje de programación se codifique. Esto
es una muestra de que la lógica para desarrollar un problema es la misma,
independientemente de cómo se implemente.
Los Algoritmos 17

2. Características de un algoritmo

 Debe ser preciso indicando la realización de cada paso ordenadamente.


 Debe estar bien definido. Si se sigue un algoritmo más de una vez, los resultados
deben ser los mismos.
 Debe tener un fin; es decir deberá ser finito.

 Debe ser independiente a la forma como se implementará en un lenguaje de


programación dado.
 Debe estar documentado, con comentarios que permitan su fácil interpretación.

 Debe ser lo más específico posible, dentro del tenor del problema planteado.
Los Algoritmos 18

3. Importancia de analizar un problema

Básicamente la importancia de los algoritmos resalta más en el caso de los


programadores novatos o con poca experiencia. El hacer un algoritmo en
programadores nuevos, les permite desarrollar una lógica más cohesionada y
depurada. Con el transcurrir del tiempo, la experiencia acumulada por la cantidad de
soluciones resueltas, hará que el programador no necesite realizar algoritmos previos a
la elaboración del programa.

Sin embargo, hay casos de solución muy compleja que, aunque el programador sea un
experto, quizás recurra a un algoritmo o modelo previo a la solución del problema.
Los Algoritmos 19

4. El Pseudocódigo

El Pseudocódigo es un lenguaje intermedio entre nuestro lenguaje y los lenguajes de


programación, debido a que quien lo utiliza se guía por una serie de normas, pero sin
llegar a utilizar una estructura tan rígida como la de un lenguaje de programación.
El objetivo al que apunta es que quien lo pone en práctica, se centre más en la solución
del algoritmo o el diseño de un software, que en el programa que utiliza para crearlo. Y
esto es posible porque es más fácil de manipular, ya que no necesita tener en mente el
lenguaje en sí y además es más fácil de construir que un programa.

Por ejemplo, si alguien tiene que hacer un software con un fin determinado, utiliza un
pseudocódigo propio, en donde confluyen frases del lenguaje coloquial y algunas
sentencias de programación y una vez que se logra concretar el software, se puede
pasar al escalón siguiente que es el de la transformación al lenguaje de programación
formal que se vaya a utilizar.

De esta manera, al ser un lenguaje intermedio, no tiene una sintaxis determinada, por lo
que no todos los programadores utilizan la misma sintaxis con exactitud. Pero a la vez,
como es una herramienta que está un paso previo al lenguaje formal de programación,
es fácil de transformar al que será ejecutado en la computadora.
Los Algoritmos 20

Ejemplo

A continuación se muestra el pseudocódigo para obtener el promedio de un alumno en


base a 3 notas.

Inicio

‘Declaramos las variables

Declarar intNota1

Declarar IntNota2

Declarar intNota3

Declarar sngPromedio

‘Se leen las 3 notas

Leer intNota1

Leer intNota2

Leer intNota3

‘Se obtiene el promedio

sngPromedio = (intNota1 + intNota2 + intNota3) / 3

‘Se muestra el promedio

Escribir sngpromedio

Fin
Los Algoritmos 21

5. Los Diagramas de Flujo o Flujogramas

Los diagramas de flujo, al igual que el pseudocódigo, permiten elaborar algoritmos, pero
en este caso, de manera gráfica en base a una simbología previamente definida.

Cada tipo de acción (Lectura, escritura, condiciones, bucles, etc.) tiene su propia
simbología y manera de representarse. Es en sí, un diagrama que representa el flujo
lógico secuencial de la lógica para resolver un problema, que si no presenta
incoherencias, puede ser fácilmente codificado en un determinado lenguaje de
programación.

Recuerde
En el presente manual resolveremos los ejercicios planteados mediante Pseudocódigo,
herramienta que consideramos más fácil de llevar luego a un lenguaje de programación y
es, además, más sencilla de elaborar.
Los Algoritmos 22

6. Los tipos de datos

Para empezar a elaborar algoritmos debemos enfocar bien el punto de definir los tipos
de datos que vamos a procesar, de tal forma que la respuesta al problema sea la
correcta. Bajo un panorama general encontramos los siguientes tipos de datos:

6.1 Datos Primitivos

Son los tipos de datos básicos en cualquier algoritmo o programa computacional.


Pueden ser, a su vez, los siguientes:

 Datos Numéricos. Valores que se pueden procesar matemáticamente. Se


subdividen de la siguiente manera:

- Enteros. Subconjunto finito de números cuyo rango o tamaño dependerá del


lenguaje en que posteriormente codifiquemos el algoritmo y de la computadora
utilizada.
- Reales. Subconjunto de números reales limitado no solo en cuanto al tamaño,
sino también en cuanto a la precisión.

 Datos Lógicos. Manejan solo los valores Verdadero o Falso.

 Datos Fecha. Almacenan datos que representan una fecha.

 Datos Cadena. Almacenan un conjunto finito de símbolos que la computadora


reconoce.
Los Algoritmos 23

6.2 Las Variables

Una variable es un espacio de memoria en el que podemos almacenar un valor de


cualquiera de los tipos definidos en el punto anterior.

En una variable podemos cambiar de valores durante la ejecución del algoritmo, es decir,
una variable puede haber almacenado “n” valores distintos.

Para poder manejar variables de manera correcta, primero se les debe declarar y luego,
asignarles un valor.

Ejemplo

Declarar strNombre

strNombre = “Jorge Cáceres”

Como vemos, la variable strNombre ha almacenado el valor “Jorge Cáceres” mediante el


operador de asignación igual (=). En este caso, el operador “=” no representa igualdad
sino asignación. Esto permite crear las variables de tipo contador y acumulador.

Contador

Un contador es una variable que va contabilizando una cantidad de sucesos


(dependiendo de la lógica del algoritmo).

Se codifican del siguiente modo:

Declarar intContador

…..

…..

intContador = intContador+1

Cada vez que el flujo lógico pase por la última línea descrita en el algoritmo, la variable
contadora se incrementará en 1.

Un acumulador es por el contrario una variable que acumula valores asignados.

Ejemplo

Declare intAcum
Declare intValor
….
….
Leer intValor
intAcum= intAcum+intValor
Los Algoritmos 24

Cada vez que el flujo del algoritmo pase la última línea descrita en el algoritmo, la
variable se incrementará de acuerdo a lo ingresado en la variable intValor.

6.3 Las Constantes

Una constante es todo lo contrario a una variable. Es un espacio de memoria que, una
vez asignado su tipo de dato y su valor, ya no se puede modificar durante la ejecución
del algoritmo.
Los Algoritmos 25

7. Los operadores

En el desarrollo de algoritmos se emplean casi los mismos operadores que en los


lenguajes de programación más comunes.

A continuación se muestra una lista de dichos operadores.

7.1 Aritméticos

^ Potencia
* Multiplicación
/ División
Mod Residuo entero (Ejm: A Mod B)
Div División entera
+ Suma
- Resta
& Concatenación de cadenas

7.2 Comparación o Relación

= Igual
<> Distinto
< Menor que
> Mayor que
<= Menor o igual
>= Mayor o igual
Los Algoritmos 26

7.3 Lógicos

And “Y” lógico o conjunción


Or “O” lógico o disyunción
Not Negación

7.4 Jerarquía de los operadores

1. Exponenciación (^)
2. Operadores multiplicativos (*, /, div, mod, y)
3. Operadores aditivos (+, -, o)
4. Operadores de relación (=, >, <, >=, <=)
Los Algoritmos 27

8. Las expresiones

Cada una de las líneas que componen un algoritmo están compuestas casi siempre de
una expresión. Una expresión está, a su vez, compuesta por la combinación de varios
operandos y varios operadores que, dependiendo de su naturaleza, pueden constituir
expresiones de los siguientes tipos:

8.1 Expresiones Numéricas

Los operandos que intervienen en ellas son numéricos, el resultado también es de tipo
numérico y se construyen mediante los operadores aritméticos.

Ejemplos

intSuma = IntValor1+intValor2

intDivide=intValor1/intValor2

intCalculo = intValor1* (intValor2^3*intValor3)/5

8.2 Expresiones Lógicas

Su resultado podrá ser verdad o falso, y se construyen mediante los operadores


relacionales y lógicos.

Ejemplo

intValorA= 120
intValorB=100
Si intValorA>intValorB entonces
Escribir “A es mayor que B”
Los Algoritmos 28

de lo contrario
Escribir “B es mayor o igual que A”
Fin de si

8.3 Expresiones Alfanuméricas

Los operandos son de tipo alfanumérico y producen resultados del mismo tipo.

Se construyen mediante el operador de concatenación, representado por el operador


ampersand (&) o con el símbolo de la suma (+).

strNombres=”Jose Felipe”
strApellidos= “Leon Cabel”
strDireccion=”Av Angamos Oeste 345”
Escribir “El profesor “ & strNombre & “ “ & strApellido & “vive en “ & strDireccion
Los Algoritmos 29

9. Casuística para el desarrollo de algoritmos

A continuación, presentamos una serie de ejemplos en pseudocódigo para la solución de


problemas puntuales, donde se aplican cálculos y expresiones matemáticas y de
cadena.

Algoritmo que calcula el área y perímetro de un círculo

Variables
real: radio, area, longitud

Inicio
area = 0
longitud = 0
radio = 0 leer radio
‘Calculamos
Area = 3.14 * (radio) ^ 2
Longitud = 2 * 3.14 * radio
imprime 'El area es:' & area
imprime 'La longitud es:' & longitud
Fin

Algoritmo que lee el peso de 3 personas y obtiene el peso promedio

Variables
Real : Peso1, Peso2, Peso3, PesoProm
Inicio
Leer Peso1
Leer Peso2
Leer Peso3
Los Algoritmos 30

‘Calcular el peso promedio


PesoProm = (Peso1 + Peso2 + Peso3) / 3
‘Imprimimos el promedio
Escribir PesoProm
Fin

Escriba un algoritmo que solicite dos números y que luego muestre los resultados
de las siguientes operaciones: suma, resta, multiplicación y división.

Variables
entero: número a,b
real: suma, resta, multiplicacion, division
Inicio
Leer número a Leer número b
suma = a + b
resta = a - b
multiplicacion = a * b
division = a / b
Imprimir suma
Imprimir resta
Imprimir multiplicacion
imprimir division
Fin

Escriba un algoritmo que permita ingresar el código, nombre y apellido, así como
las horas de trabajo de un empleado.

Se debe calcular lo siguiente:

 El total de ingresos: Cada hora de trabajo equivale a 35 soles.


 El total de descuentos: Se le descuenta el 15% de su total de ingresos.
 El neto a pagar: Es el resultado de restar el total de ingresos menos el total de
descuentos.

Variables
Cadena: cod, nom, ape
Entera: HorasTrab
Real: Toting, Totdes, Neto
Inicio
Leer Cod
Leer Nom
Leer Ape
Leer HorasTrab
TotIng = HorasTrab * 35
Totdes =TotIng * 0.15
Neto =TotIng - TotDes
Fin
Los Algoritmos 31

Escriba un algoritmo que solicite 2 números (a y b) y muestre los resultados de las


siguientes operaciones:

 a2 + 2ab + b2
 a3 + 3a2b + 3ab2 + b3
 a4 + 4a3b + 4a2b2 + 4ab3 + a3

El algoritmo debe mostrar el valor de los resultados, así como las cadenas de las
operaciones. Utilice cadenas y la función de concatenación entre ellas. No debe utilizar
paréntesis.

Var:
Entero: a, b, X, Y, Z

Inicio
a=0
b=0
X =0
Y =0
Z=0

X=a^2+2*a*b+b^2
Y = a ^ 3 + 3 * a ^ 2 * b + 3 * a * b ^2 + b ^3
Z=a^4+4*a^3*b+4*a^2*b^2+4*a*b^3+a^3

Imprime ´X = ´ & a & ^ & 2 & + & 2 & * & a & * & b & + & b & ^ & 2 & = & X

Imprime ´Y = ´ & a & ^ & 3 & + & 3 & * & a & ^ & 2 & * & b & + & 3 & * & a
&*&b&^&2&+&b&^&3&=&Y

Imprime ´Z = ´ & a & ^ & 4 & + & 4 & * & a & ^ & 3 & * & b & + & 4 & * & a
&^&2&*&b&^&2&+&4&*&a&*&b&^&3&+&a&^&3&
=&Z
Fin

También podría gustarte