Está en la página 1de 77

FUNDAMENTOS DE

PROGRAMACIÓN

UNIDAD 01 :
INTRODUCCIÓN A LOS FUNDAMENTOS DE PROGRAMACIÓN

I N G. R O B E RTO M A R TÍN T U E STA PE R E YRA


i n gm a rtin tuesta @gmai l. c om - 926912821
Lenguajes de Programación
• Los lenguajes de Programación son el corazón de la Ciencia de la
Computación.
• Son herramientas que usamos no solo para comunicarnos con las
máquinas sino también con las personas.
• “el valor de un lenguaje se debe juzgar según la forma en que afecta
la producción de Software y a la facilidad con la que puede integrarse
a otras herramientas”
Objetivos
• Adquirir habilidad de apreciar y evaluar lenguajes, identificando sus
límites y posibilidades.
• Habilidad para elegir, para diseñar, implementar o utilizar un
lenguaje.
• Enfatizar la abstracción.
¿Porqué estudiar Lenguajes?
• Aumentar la capacidad para producir software.
• Conocer profundamente las características de los lenguajes permite
aprovechar su potencia y evitar errores, minimizando esfuerzo.
• Mejora la habilidad para desarrollar mejores algoritmos.
• Aprendemos a elaborar los algoritmos más eficientes en concordancia
con el lenguaje que estamos utilizando. Ejemplo: Recursión.
¿Porqué estudiar Lenguajes?
• Mejora el uso de su lenguaje de programación preferido.
• Si se entiende como se implementa cada característica se mejora la
capacidad para escribir programas eficientes.
• Ejemplo: Orientación a Objetos (Herencia)
• Incrementa el conocimiento de construcciones posibles.
• Libera la mente para poder pensar en términos del problema y no de
determinado lenguaje.
• Ejemplo: Tratar de resolver todo en termino de las capacidades de C.
¿Porqué estudiar Lenguajes?
• Incrementar el vocabulario
• El lenguaje:
• Equivale a comunicación.
• Es una ayuda y una limitación al pensamiento.
• Permite expresar y estructurar el pensamiento

• Incrementamos la capacidad para expresar ideas.


¿Porqué estudiar Lenguajes?
• Permite elegir mejor el lenguaje a utilizar para cada tarea.
• Conocer las fortalezas y debilidades de los diferentes lenguajes nos
permite saber que problema podemos resolver más fácilmente con cada
uno y por lo tanto se reduce el esfuerzo de codificación.

• Hace más fácil aprender nuevos lenguajes de programación.


• Un conocimiento de la estructura de los lenguajes de programación
reduce considerablemente la curva de aprendizaje de un lenguaje nuevo.
¿Porqué estudiar Lenguajes?
• Hace más fácil el diseño e implementación de lenguajes.
• El programador puede convertirse en diseñador o implementador de un
lenguaje.

• O no necesariamente nuevos lenguajes de programación, pero cuando


programamos muchas veces necesitamos crear códigos de comunicación.

• Ejemplo: Manejo de formas en Internet


Historia
• Pre-historia
• Programar consistía en abrir o cerrar contactos mecánicos para que la
máquina se comportara de manera diferente.
 Lenguajes numéricos 1920-1960
 Hardware: Primeras computadoras.
 Programar consistía en abrir o cerrar contactos eléctricos que manipulaban las
válvulas al vacío.
 Más tarde se pasó a tarjetas perforadas que hacían esto automáticamente.
Historia
• Pre-historia
• Programar consistía en abrir o cerrar contactos mecánicos para que la máquina se
comportara de manera diferente.

• Lenguajes numéricos 1920-1960


• Hardware: Primeras computadoras.
• Programar consistía en abrir o cerrar contactos eléctricos que manipulaban las
válvulas al vacío.
• Más tarde se pasó a tarjetas perforadas que hacían esto automáticamente.
• 1955: FORTRAN por Backus (Formula Translator)
• 1958: ALGOL desarrollado por Peter Naur.
Historia
• Negocios 1950 - 1970
• Diseñados para popularizar la computación en los negocios.
• 1955: Flowmatic por Grace Hoper
• 1960: COBOL (Common Business Oriented Language).

• Inteligencia Artificial: 1050 – 1990


• 1950: IPL (Information Processing Language) por Rand Corporation
• Lenguaje más representativo: LISP por John McCarthy del MIT
• LISP = List Processing
• Otros lenguajes: Prolog, Comit
Historia
• Propósito General: 1970 - hoy
• 1969: Pascal por Nicklaus Wirth

• 1970: BASIC

• 1970: C por Ken Thompson

• 1972: SmallTalk Alan Kay en XPARC

• 1984: C++

• 90s: Perl, Java, Python, Squeak


Historia
Paradigmas
• Se reconoce generalmente 4 paradigmas de programación:
• Imperativo (Estructurado)
• Aplicativo (Funcional)
• Orientado a Objetos
• Lógico
Lenguajes Imperativos
• Su objetivo es entender y definir el estado de la máquina
(conjunto de posiciones de memorias, cada una
conteniendo un valor).
• Lenguajes orientados a instrucciones
• El programa consiste en elaborar un conjunto de
instrucciones para que la máquina llegue a la respuesta.
• Ejemplos: C, Fortran, Pascal, Cobol
• Sintaxis: S1, S2, S3, S4, …
Lenguajes Imperativos
Programación: serie de pasos (input, cálculo, ouput).
Elementos: abstracción procedural, asignación, loops,
secuencias, condicionales.
Lenguajes Funcionales
• Su objetivo es entender la función que produciría la
respuesta deseada.
• Es orientada hacia la composición de funciones.
• Programar consiste en construir la función que halle la
respuesta.
• Ejemplos: ML, Lisp, Scheme, Haskell
• Sintaxis: F1(F2(F3(x)))
Lenguajes Funcionales
• Programación: colección de funciones que se combinan en
formas complejas para construir nuevas funciones.
• Elementos: alto orden, composición, recursión.
Lenguajes Orientado a Objetos
• Su objetivo es modelar el problema con elementos
similares a los realmente presentes.
• Programar significa generar objetos que intercambian
mensajes entre si para resolver un problema.
• Ejemplos: Smalltalk, C++, Java, Squeak, C#
• Sintáxis: O1 ->mensaje-> O2.
Lenguajes Orientado a Objetos
• Lenguajes imperativos que unen diseños aplicativos con
sentencias imperativas.
• Sintaxis: Conjunto de objetos (clases) conteniendo datos
(concepto imperativo) y métodos (conceptos aplicativos).
• Programación: colección de objetos que interactúan
pasándose mensajes que transforman estados.
• Elementos: modelado de objetos, clases, herencia,
encapsulamiento.
Lenguajes Lógicos
• Definen reglas para decidir cuando la respuesta ha sido
alcanzada.
• Utiliza un conjunto de reglas para deducir los atributos de la
respuesta.
• Ejemplos: Prolog
• Sintaxis: Regla -> Conclusión
Criterios para evaluar un Lenguaje de Programación
Facilidad de Escritura
• La facilidad de escritura es la medida de cuan fácil resulta usar un
lenguaje para construir soluciones.

• Simplicidad
• Claridad
• Ortogonalidad
• Soporte de Abstracción
Facilidad de Escritura
• Simplicidad
• El lenguaje debería ser lo suficientemente pequeño y simple para
ser entendido en su totalidad
• Un pequeño número de construcciones primitivas.
• Un conjunto consistente de reglas para combinarlas (ortogonalidad).
• ¿Qué tienen de malo los lenguajes “grandes” y “complejos”?
• Contienen tantas características que muchas de ellas nunca llegan a usarse ni a
entenderse.
• La complejidad del lenguaje crece de forma no lineal con el número de
características que incorpora.
Facilidad de Escritura
• Simplicidad
• Sin embargo,
• El lenguaje más usado (C++) es complejo.
• Uno de los más recomendados (Ada) es grande y complejo.
• Java, que nació con vocación de ser simple, tiende a hacerse más
grande y complejo.
Facilidad de Escritura
• Claridad
• Un programador sólo puede escribir programas fiables si entiende
con toda claridad lo que significa (implica) cada una de las
estructuras del lenguaje.
• La especificación del lenguaje y la calidad de su documentación es
absolutamente crítica en este aspecto:
• Debe evitarse cualquier ambigüedad.
• No debe ser necesario escribir y ejecutar fragmentos de código para descubrir
el significado de una característica del lenguaje.
Facilidad de Escritura
• Ortogonalidad
• El efecto de la combinación de características debe entenderse
fácilmente y ser predecible.
• Proporciona un mayor grado de generalidad sin restricciones ni
casos especiales.
• Las reglas del lenguaje deben tener las mínimas excepciones
posibles.
• El usuario comprende mejor si tiene un pequeño número de
primitivas y un conjunto consistente de reglas de combinación.
Facilidad de Escritura
 Ortogonalidad

 Si es ortogonal, un lenguaje es fácil de aprender y usar.


 Por ejemplo: Asignación y Tipos
 X=5
 F(x)=x+3
 A[y]=8
Facilidad de Escritura
• Ortogonalidad
• ¿Qué tienen de malo la falta de ortogonalidad?
• Que hace imposible deducir nuevas propiedades del lenguaje de las que ya se
conocen.
• Que va en contra de la claridad.
• Ejemplos de falta de ortogonalidad:
• En Pascal todos los tipos escalares pueden leerse y escribirse, excepto los
booleanos que sólo pueden escribirse.
• En C las funciones pueden retornar “structs” pero no “arrays”
• En C los parámetros se pasan a las funciones por valor, excepto los arrays que
se pasan por referencia.
Facilidad de Escritura
• Soporte de Abstracción
• La abstracción es la capacidad para definir y utilizar estructuras y
operaciones muy complicadas de forma que la complejidad quede
oculta.
• Concepto clave para manejar la complejidad.
• Abstracción de procesos y de datos.
• Principio de diseño: Ocultamiento de la información
Legibilidad
• Fácil de leer

• SEMANTICA
• SINTAXIS
• DEFINICION
• ESTRUCTURAS DE DATOS
• ESTRUCTURAS DE CONTROL
Legibilidad
• Semántica
• La semántica de un lenguaje especifica el significado algorítmico de un
programa y se define como un conjunto de reglas que describen el
comportamiento de ese lenguaje en tiempo de ejecución.
Legibilidad
• Sintaxis
• La sintaxis determina la forma en que se combinan los elementos del lenguaje para
construir sentencias y programas.
• Unas reglas sintácticas adecuadas son fundamentales para que los programas sean
legibles.
• Documentación y comentarios
• Elección de nombres
• Uso de constantes
• If-then-else anidados
• Separación de sentencias
• Indentación
Legibilidad
• Sintaxis
• Ejemplos de una “mala” sintaxis:
• Restringir el tamaño de los identificadores.
• Uso del símbolo = para realizar asignaciones.
• Palabras reservadas con más de un significado (static en en C).
• Uso de llaves {... ...} para delimitar bloques.
Legibilidad
• Definición del lenguaje
• Precisión en la definición de la sintaxis y de la semántica.

• Ambigüedad: Ejemplo, M(i) puede significar un elemento del


arreglo M ó una llamada a la función M
• Portabilidad

• Definiciones formales

• Estructuras de control
• Programación estructurada
• Estructuras de datos
• Facilidades para expresar los datos del problema
Confiabilidad
• Correcto: cumple con las especificaciones
• Verificación de programas: probar su corrección
• Chequeo de tipos
• Chequeos estáticos y dinámicos

• Robusto
• Capacidad de prevenir situaciones
• Manejo de excepciones
Mantenibilidad
• Modificabiliad: facilidad de introducir cambios.
• Factoreo: una sola vez y luego rehusar.
• Localidad: el efecto de una característica se restringirse a una
porción local del programa.
Eficiencia
• Tiempo y Espacio
• Esfuerzo humano
• Optimizable
¿Qué hace un Lenguaje Bueno?
• Naturalidad de la aplicación
• La estructura del programa refleja la estructura lógica del
algoritmo.
• Cada lenguaje generalmente se especializa en un campo de acción
determinado y es más fácil resolver ciertos problemas con él.
• Facilidad de verificación
• Debe proveer una manera de corroborar que el programa
efectivamente realiza su tarea.
• Una sintaxis sencilla facilita la verificación.
¿Qué hace un Lenguaje Bueno?
• Ambiente de programación
• Debe contar con un entorno que facilite la programación en el
lenguaje.
• Generalmente lenguajes no tan buenos, pero que tienen un buen
entorno de programación, son más usados en el mercado.
• Portabilidad
• Que tan fácil se puede transportar la aplicación de la máquina en
que se desarrolló a otras máquinas donde va a ser ejecutada.
• El mejor ejemplo de esto es programación para Internet.
¿Qué hace un Lenguaje Bueno?
• Costo de uso
• Costo de ejecución
• Costo de traducción
• Costo de creación, prueba y uso
• Costo de mantenimiento
Resolución de Problemas
 La resolución de problemas utilizando como herramienta una
computadora no se resume únicamente en la escritura de un programa,
sino que se trata de una tarea más compleja. El proceso abarca todos los
aspectos que van desde interpretar las necesidades del usuario hasta
verificar que la respuesta brindada es correcta. Las etapas son las
siguientes:

 Análisis del problema


 Diseño de una solución (Especificación del algoritmo)
 Escritura de programas
 Verificación y Depuración
Algoritmo
 La palabra algoritmo deriva del nombre de un matemático árabe
del siglo IX, llamado Al-Khuwarizmi, quien estaba interesado en
resolver ciertos problemas de aritmética y describió varios métodos
para resolverlos.
 Un algoritmo es, en forma intuitiva, un conjunto de instrucciones
sobre un proceso para hacer algo.
 Ese algo generalmente es la solución de un problema de algún tipo.
Algoritmo
 El algoritmo tiene varias propiedades:

1. Debe ser claro (no ambiguo) o sea, que si se trabaja dentro de


cierto marco o contexto, cada instrucción del algoritmo debe
significar sólo una cosa.
2. Además debe ser finito en términos de recursos empleados
(tiempo, líneas de código, etc.).
3. Asimismo debe ser independiente del lenguaje que se emplee
para implementar cada paso.
Ejemplos:
 Ejemplo 1:
Problema : Indique la manera de salar una masa.

Algoritmo 1: Ponerle algo de sal a la masa


Algoritmo 2: Agregarle una cucharadita de sal a la masa.

 El algoritmo 1 presenta una solución ambigua al problema planteado.


 El algoritmo 2 presenta una solución adecuada al problema.
Cont…
Ejemplo 2:
Problema: Determinar si el número 7317 es primo.

Algoritmo 1: Divida el 7317 entre sus anteriores buscando


aquellos que lo dividan exactamente.
Algoritmo 2: Divida el número 7317 entre cada uno de los
números 2, 3, 4, ..., 7315, 7316. Si una de las divisiones es exacta,
la respuesta es no. Si no es así, la respuesta es sí.

 El algoritmo 1 no especifica claramente cuáles son los valores a lo


que se refiere, por lo que resulta ambiguo.
 El algoritmo 2 presenta una solución no ambigua para este
problema. Existen otros algoritmos mucho más eficaces para dicho
problema, pero esta es una de las soluciones correctas.
Cont…
Ejemplo 3:
Problema: Determinar la suma de todos los números enteros.

 En este caso no se puede determinar un algoritmo para


resolver este problema. Un algoritmo debe alcanzar la solución
en un tiempo finito, situación que no se cumplirá en el ejemplo
ya que los números enteros son infinitos.
 Además de no ser ambiguo, un algoritmo debe detenerse. Se
supone también que cuando se detiene, debe informar de
alguna manera, su resultado. Es bastante factible escribir un
conjunto de instrucciones que no incluyan una terminación y
por lo tanto dicho conjunto de instrucciones no conformarían
un algoritmo.
Cont…
Ejemplo 4:
Problema: Volcar un montículo de arena en una zanja.
Algoritmo: Tome una pala. Mientras haya arena en el montículo
cargue la pala con arena y vuélquela en la zanja. Dejar la pala.
 Este algoritmo es muy simple y no ambiguo. Se está seguro
que en algún momento parará, aunque no se sabe cuántas
paladas se requerirán.

Resumiendo, un algoritmo puede definirse como una secuencia


ordenada de PASOS ELEMENTALES, exenta de ambigüedades, que
lleva a la solución de un problema dado en un tiempo finito.
Cont…
Ejemplo 5: Escriba un algoritmo que permita preparar una tortilla de
papas de tres huevos.
 El enunciado anterior basta para que un cocinero experto lo resuelva
sin mayor nivel de detalle, pero si este no es el caso, se deben
describir los pasos necesarios para realizar la preparación. Esta
descripción puede ser:
 Mezclar papas cocidas, huevos y una pizca de sal en un recipiente
 Freír
 Esto podría resolver el problema, si el procesador o ejecutor del
mismo no fuera una persona que da sus primeros pasos en tareas
culinarias, ya que el nivel de detalle del algoritmo presupone
muchas cosas.
 Si este problema debe resolverlo una persona que no sabe cocinar,
se debe detallar, cada uno de los pasos mencionados, pues estos no
son lo bastante simples para un principiante.
Cont…
 De esta forma, el primer paso puede descomponerse en:
 Pelar las papas
 Cortarlas en cuadraditos
 Cocinar las papas
 Batir los huevos en un recipiente
 Agregar las papas al recipiente y echar una pizca de sal al
mismo
 El segundo paso (freír) puede descomponerse en los
siguientes tres:
 Calentar el aceite en la sartén
 Verter el contenido del recipiente en la sartén
 Dorar la tortilla de ambos lados
Cont…
 Nótese además que si la tortilla va a ser realizada por un niño,
algunas tareas (por ejemplo batir los huevos) pueden necesitar
una mejor especificación.
 El ejemplo anterior sólo pretende mostrar que la lista de pasos
elementales que compongan nuestro algoritmo depende de
quién sea el encargado de ejecutarlo.
 Si en particular, el problema va a ser resuelto utilizando una
computadora, el conjunto de pasos elementales conocidos es
muy reducido, lo que implica un alto grado de detalle para los
algoritmos.

Se considera entonces como un paso elemental aquel que no puede


volver a ser dividido en otros más simples. De ahora en adelante se
utilizará la palabra INSTRUCCIÓN como sinónimo de paso elemental.
Cont…

 Un aspecto importante a discutir es el detalle que debe llevar


el algoritmo. Esto no debe confundirse con el concepto
anterior de paso elemental. En ocasiones, no se trata de
descomponer una orden en acciones más simples sino que se
busca analizar cuáles son las órdenes relevantes para el
problema. Esto resulta difícil de cuantificar cuando las
soluciones son expresadas en lenguaje natural. Analice el
siguiente ejemplo:

Ejemplo 6:
Desarrolle un algoritmo que describa la manera en que Ud. se
levanta todas las mañanas para ir al trabajo.
Pre y Postcondiciones de un Algoritmo

 Precondición es la información que se conoce como


verdadera antes de comenzar el algoritmo.

 Postcondición es la información que se conoce como


verdadera al concluir el algoritmo si se cumple
adecuadamente el requerimiento pedido.
Ejemplos:
En el ejemplo 1: Indique la manera de salar una masa.
Algoritmo: Agregarle una cucharadita de sal a la masa.
Se supone que se dispone de todos los elementos para llevar a
cabo esta tarea. Por lo tanto, como precondición puede
afirmarse que se cuenta con la cucharita, la sal y la masa.

En el ejemplo 2: Determinar si el número 7317 es primo.


Algoritmo: Divida el número 7317 entre cada uno de los números
1, 2, 3, 4, ..., 7315, 7316. Si una de las divisiones es exacta, la
respuesta es no. Si no es así, la respuesta es sí.
La postcondición es que se ha podido determinar si el número
7317 es primo o no.
Cont…

En el ejemplo 4: Volcar un montículo de arena en una zanja.


Algoritmo: Tome una pala. Mientras haya arena en el montículo
cargue la pala con arena y vuélquela en la zanja. Dejar la pala.

¿Cuáles serían las precondiciones y las postcondiciones del


algoritmo?

 La precondición es que se cuenta con la pala, la arena y está


ubicado cerca de la zanja que debe llenar.
 La postcondición es que el montículo quedó vació al terminar
el algoritmo.
Ejercicios para resolver
1. Dada un cantidad en soles, obtenga la equivalencia en dólares, asumiendo
que la unidad cambiaría esta en otra variable.

2. Calcule la masa del aire; si la presión, el volumen y la temperatura de una


masa de aire se relacionan por la formula:
masa = (presión * volumen)/(0.37 * (temperatura + 460))

3. Calcular el numero de pulsaciones que una persona debe tener por cada 10
segundos de ejercicio, si la formula es:
numero de pulsaciones = (220 - edad)/10

4. Calcular el nuevo salario de un obrero si obtuvo un incremento del 25%


sobre su salario anterior.
Conclusiones
 El uso de algoritmos permite expresar, de una forma clara, la
manera en que un problema debe ser resuelto. Los elementos que
lo componen son característicos de la resolución de problemas con
computadora.

 La ejercitación es la única herramienta para poder comprender y


descubrir la verdadera potencialidad de las estructuras de control.
Resulta fundamental alcanzar un total entendimiento del
funcionamiento de estas estructuras para poder lograr expresar
soluciones más complejas que los ejemplos aquí planteados.

 Las estructuras de control son construcciones algorítmicas que


alteran directamente el flujo de control secuencial del algoritmo.
Programa
• Un programa es la traducción de un algoritmo a un lenguaje de
programación; como una receta puede traducirse al francés o al
español.
• Un programa puede estar formado por un conjunto de algoritmos,
cada uno de los cuales, lleve a cabo una tarea específica.
• Por otro lado, existen diferentes estructuras de datos definidas por
las relaciones o las formas en que pueden agruparse los datos que las
constituyen.
Programa
• En general y atendiendo al formato de codificación de los datos, los
dispositivos que procesan datos pueden clasificarse en analógicos y
digitales.
• Un dispositivo analógico almacena y procesa datos que están
representados en términos de una variable continua, por ejemplo, el voltaje
eléctrico. Son rápidos pero poco precisos y difíciles de programar. Sólo
sirven para tareas sencillas.
• En un dispositivo digital la variable puede tomar un conjunto discreto de
valores, por ejemplo, datos en formato binario: se emplean elementos con
dos estados estables. Es mucho más flexible y preciso.
Lenguaje de Programación
 Un leguaje de programación es un conjunto de reglas ó normas,
símbolos y palabras especiales utilizadas para construir un
programa. Tienen una sintaxis bien definida.
 Es un leguaje de programación de alto nivel usado para escribir
programas.
 Los lenguajes de programación se clasifican en:
 Lenguaje de máquina (de bajo nivel)
 Lenguaje ensamblador
 Lenguaje de alto nivel
Datos en general
 Un dato es la representación de un hecho, evento o elemento
del mundo real.
 Ejemplo: Una persona puede tener varios datos que permiten
identificarla, como:
 Nombre (texto/secuencia de caracteres: letras, dígitos
y/o cualquier símbolo)
 DNI (texto, 8 dígitos exactamente)
 Edad (entero positivo: 18)
 Sexo (carácter: cualquier símbolo)
 Estatura (real: 1.78)
 Fecha de Nacimiento (fecha y/u hora)
 Fallecido (lógico: verdadero o falso)
Tipos de Datos en C#
• Enteros sin signo: byte, ushort, uint, ulong.
• Enteros con signo: sbyte, short, int, long.
• Reales: float, double, decimal.
• Carácter: char.
• Cadena de Caracteres: string.
• Lógico: bool.
Asignación en C#

 Para asignar un valor a una variable, se indica el


identificador de la misma, seguido del símbolo igual (=)
y el valor que queremos que almacene:

miNumero = 5;
int miNumero = 5;
Variables en C#

 En C# se tiene que especificar si la variable es de tipo int, float, byte,


short u otro cualquiera entre más de 20 tipos de datos diferentes.
 El tipo especifica, entre otras cosas, la cantidad de memoria exacta
que se debe asignar para almacenar el valor cuando la aplicación se
ejecuta.
 El lenguaje C# fuerza ciertas reglas al convertir una variable de un
tipo en otro.
double numero;
int valor = 42;
string saludo = "Hola Mundo";
Constantes en C#
 Una constante es otro tipo de campo. Contiene un valor que se
asigna cuando se compila el programa y nunca cambia después.
 Las constantes se declaran con la palabra clave const; son útiles
para que el código sea más legible.

const int speedLimit = 55;


const double pi = 3.141592;

 Cuando se declara una constante con la palabra clave const,


también se debe asignar el valor. Tras esto, la constante queda
bloqueada y no se puede cambiar.
Ejecución de un Programa en general
 Consiste en poner a funcionar el programa (ejecutar o correr el
programa).
 En esta etapa el compilador del lenguaje de programación traduce el
código fuente a lenguaje de máquina (código objeto), siempre y cuando
no tenga errores de sintaxis.
 Ejemplo:
X = a/(b+5 //Aquí hay un error de sintaxis (falta un paréntesis)

 Si hay errores, es necesario corregirlos y volver a compilar el programa.


Pruebas y Depuración
En esta etapa se identifican y se corrigen los errores del programa.
Hay tres tipos de errores:

 Errores en Tiempo de Compilación: ocurren cuando se violan las reglas del


lenguaje de programación: léxico (ortográficos), sintáctico (construcciones
gramaticales incorrectas) y semántica (errores de tipos de datos).

 En Tiempo de Ejecución: Obligan a detener el normal funcionamiento mediante la


ejecución del programa, es decir podría ocurrir errores de direccionamiento de
arreglos fuera de rango, divisiones por cero, etc.
 Errores de Lógica (De especificación/diseño del algoritmo): compilan
correctamente y el programa funciona; pero no realizan lo que el programador
desea, es decir te brinda resultados incorrectos.
Elementos de un Algoritmo

 Secuencia de Acciones: Serie de instrucciones


que se ejecutan una a continuación de la otra.

 Estructuras de Control:

1. Selección
2. Repetición
Iniciando una Solución en C#

 PROBLEMAS  SOLUCIONES

 UNA SOLUCIÓN  UNO O MAS PROYECTOS

 UN PROYECTO  UNO O MAS NAMESPACES

 UN NAMESPACE  UNO O MAS CLASES

EN ESTE CURSO VEREMOS:

 UN PROYECTO  UN NAMESPACE

 UN NAMESPACE  UN PROGRAMA (program)


Tipos de Conversiones en C#
Al momento de asignar valores a una variable, podría suceder dos
tipos de conversiones: Implícita y Explícita.

 Toda conversión implícita no ocasiona pérdida de información,


truncamientos o redondeos.

 En toda conversión implícita el tipo de dato destino es mayor


que el tipo de dato origen.

long valor=12; //Conversión implícita


Cont...
 Es posible (mas no siempre ocurre) que en una conversión
explícita haya pérdida de información, truncamientos o
redondeos.

 La conversión explícita se realiza indicando el tipo de dato al que


se quiere convertir entre paréntesis, seguido del valor.

long valor=(long)12.5; //Conversión explícita


Entrada y Salida de Datos en C#
 En C#, una forma común de introducir datos a través de la
Consola, es utilizando el método ReadLine() de la Clase Console.

 Las siguientes funciones de C# permiten ingresar un dato por


teclado e imprimir en pantalla.
string nombre;
Console.WriteLine(“Ingrese un nombre:”);
nombre=Console.ReadLine();
Console.WriteLine(nombre);
Cont...

Se debe indicar que C#, todo dato que recibe por


consola es considerado texto (string), por lo tanto
es necesario convertir explícitamente a través de
los métodos de conversión de string a otro tipo ya
sea de la Clase Convert. o a través del propio tipo de
dato primitivo al cual se desea convertir.
Cont...
 Ejemplo: Conversión de “string” a otro tipo de dato.
Console.Write(“Ingrese un numero:”);
a=Convert.ToInt32(Console.ReadLine());
Console.Write (“Ingrese otro numero:”);
b=int.Parse(Console.ReadLine());
s=a+b;
Console.WriteLine(“La Suma de {0} y {1} es {2}”,a,b,s);
//Console.WriteLine(“La Suma de ”+a+“ y “+b+” es ”+s);
Console.ReadKey();
Operadores de C#

Categoría Operadores
Aritmético +-*/%
Lógico ! && ||
Concatenación +
Incremento, decremento ++ --
Relacional == != < > <= >=
Asignación =
Indexación []
Conversión ()
Acceso a Miembro .

También podría gustarte