Anda di halaman 1dari 26

Algoritmos y Lenguaje de

Programación

IC ELECTRÓNICA

Yasmany Prieto
yprietoh@udec.cl

1
Info General y Horario
Código: 543242-2
Inicio de Clases: 19 de Marzo
Horario clases
 martes de 15:15 a 17:00, sala TM 3-8
 Laboratorios: Jueves de 15:15 a 17:00, laboratorios de
computadores de TM.

2
Descripción
 Asignatura teórico-práctica que entrega los
fundamentos de algoritmos y lenguajes de
programación.

 Contenidos Generales:
 Introducción a la computación y programación.
Definiciones básicas. Historia. Estructura funcional de
computadores. Lenguajes y programas.
 Programación en C. Tipos de datos. Operadores. Sentencias.
Funciones. Arrays. Estructuras. Punteros.

3
Objetivos del Curso

 Objetivos Generales.
 Capacitar al alumno para usar eficientemente un lenguaje
de programación (C) para solucionar problemas reales.
 Objetivos específicos.
 Aprender sobre el diseño de algoritmos para solucionar
problemas.
 Aprender a programar en forma estructurada mediante el
lenguaje de programación C.

4
Resultados de Aprendizaje

 R1. Conocer las capacidades de algoritmos para la


solución de problemas reales.
 R2 Diseñar programas haciendo uso de un lenguaje
de programación y a partir de pseudo códigos.
 R3. Programar en forma efectiva mediante el uso de
la sintaxis del lenguaje de programación C.

5
Contenidos
 CAP1. Introducción a la computación y programación.
 CAP2. Fundamentos de programación. Algoritmos, diagramas de flujo,
programas.
 CAP3. Introducción al lenguaje de programación C.
 CAP4. Tipos de Datos, declaraciones, operadores básicos.
 CAP5. Sentencias de control de programa. Sentencias de selección,
iteración y salto.
 CAP6. Funciones. Recursión.
 CAP7. Arreglos, Cadenas.
 CAP8. Punteros.
 CAP9. Estructuras.
 CAP10. Entrada/salida.

6
Metodología

 El aprendizaje de las materias se realiza mediante


clases expositivas sobre teoría y conceptos,
además de sesiones de laboratorio que permiten
practicar los conceptos vistos en clases.

7
Informaciones

 Infoalumno
Notas, material de apoyo, emails.
 Grupo Facebook: links, preguntas/respuestas, a
utilizar en conjunto por las secciones de ELN y BIO.

8
Otras Consultas

 Usar en lo posible grupo administrado por


ayudantes.
 Enviar un correo para asegurar una hora de
atención.
 Lugar de consultas: Edificio TM, segundo piso,
Lab. Transmisión.

9
Software
 Compilador C a usar:
 Code::Blocks
 Es gratis.
 Estará instalado en los laboratorios de computadores
de ICB y de la facultad de ingeniería, (mecánico y
sistemas). Sirve para linux y windows.
Descargas, desde la página http://www.codeblocks.org/
 Otros compiladores.
 Bajo su responsabilidad.
 Los laboratorios se revisarán con Code::Blocks.

10
Evaluaciones
 Evaluaciones:
 C1: Certamen 1 (30%)
 C2: Certamen 2 (30%)
 T:Tareas(30%)
 Ts:Test (10%)
 La nota final será:

NF = C1*0.3 + C2*0.3 + T1*0.15 + T2*0.15 + C1*0.1

 La copia se castigará con la nota mínima para todas las copias


(incluida original).

11
Asistencia

 Asistencia a clases teóricas no obligatoria pero


altamente recomendada. El profesor se reserva la
opción de pasar lista de asistencia cuando lo desee.

 La asistencia a las sesiones de laboratorio es


obligatoria.

 Inasistencia a certámenes debe ser justificada.

12
Bibliografía Básica

 El curso no tiene un libro guía específico, pero


algunos libros son:
 El lenguaje de programación C. Brian W. Kernighan.
Dennos M. Ritchie. Prentice Hall (2da Edición), 1995.
ISBN: 9688802050.
 Pointers on C. Kenneth A. Reek. Addison Wesley (1st
edition), 1997. ISBN: 0673999866.

13
Bibliografía Complementaria
 C – Manual de Referencia. Herbert Schildt. MC Graw Hill (4a Edición), 2001.
ISBN: 8448128958.
 C Languaje Tutorial:
http://www.frlp.utn.edu.ar/materias/internetworking/apuntes/ctutorial/ctutorial.p
df
 Aprenda lenguaje ANSI C como si estuviera en primero:
http://mat21.etsii.upm.es/ayudainf/aprendainf/AnsiC/leng_c.pdf
 Puede utilizar otros apuntes y tutoriales de C disponibles en internet.
 Para el caso de programación en general y lenguaje C, hay
muchísima información buena en internet, pero se recomienda
siempre buscar en varias partes, porque pueden haber errores, y
preferir el inglés ya que hay más información disponible.

14
Planificación

15
Breve Introducción

16
Lenguajes de Programación

 Objetivo.
 Indicar al computador lo que deseamos que haga para
obtener el resultado esperado.
 Ejemplo:
 “Suma 1 más 1”.
 En el lenguaje natural, esta instrucción el computador
no la entiende.
 El computador está diseñado para entender
lenguaje de máquina, escrito en código binario, es
decir, combinaciones de unos y ceros.
 00011101011001110111

17
Programación de computadores

 EL COMPUTADOR NO ADIVINA!!!
 Sólo realiza en forma secuencial o paralela las
instrucciones que le ordenamos que haga a través
de la programación.
 Tiene una LÓGICA, no es ambigüo.
 Operaciones básicas:
 Sumar dos números.
 Verifique si un dato es igual a 0.
 En general, programar un computador implica
expresar la solución a un problema en términos que
el computador entienda.

18
Lenguajes de Bajo Nivel

• Lenguaje ensamblador o assembly.


• Más fácil de escribir, pero cercano al código binario.

 LOAD R1, Dato 0101000100011001


 ADD R1, R2 0101001100010010
 MULT R2, R4 0101110100100100
 STORE R4, Result 0101001001001010

Sobre estos, vienen lenguajes de alto nivel que


se “traducen” a lenguaje de máquina.
19
Programas y Algoritmos
 Programa:
 Colección de instrucciones de un computador necesarias
para resolver un problema determinado.
 Algoritmo:
 Método utilizado para resolver un problema determinado.
 Considera una importante etapa de diseño de la solución.
Esta, en un primer nivel, debe ser independiente del
lenguaje.
 La implementación es la segunda etapa, cuando se lleva
a cabo la solución, depende de:
 Lenguaje de programación a usar.
 Sistema Computacional.
 Programador. Ninguna persona programa de la misma forma
(Esto se ve en las copias).

20
Ejemplos de solución (diseño)
Problema:
Desplegar en pantalla la palabra “hello world”.
Soluciones independientes del lenguaje:
Solución 1 (pseudo-lenguaje) Solución 2 (pseudo-lenguaje)
print 'h'
print 'e'
print 'l'
print 'l'
print 'o' print “hello world”
print ' '
print 'w'
print 'o'
print 'r'
print 'l'
print 'd'
21
Ejemplo de implementación
Problema:
Desplegar en pantalla la palabra “hello world”.
Implementaciones en C (Soluciones dependientes del lenguaje)
Solución 1 (pseudo-lenguaje) Implementación 1
print 'h'
#include<stdio.h>
print 'e'
saludo := “hello world” int main(void)
print 'l'
para i en saludo: {
print 'l'
print i char saludo[12] = "hello world";
print 'o'
int i;
print ' '
for (i = 0; i<12 ; i++)
print 'w'
printf("%c", saludo[i]);
print 'o'
return 0;
print 'r'
}
print 'l'
print 'd'

22
Ejemplo
Problema:
Desplegar en pantalla la palabra “hello world”.
Implementaciones en C (Soluciones dependientes del lenguaje)
Solución 2 Programador 1 Programador 2
(pseudo-lenguaje)
#include<stdio.h> #include<stdio.h>
int main(void) int main(void)
{ {
print “hello world” char saludo[12] = "hello world"; printf("hello world");
printf("%s", saludo); return 0;
return 0; }
}

23
Lenguajes de Programación

 Lenguaje de programación:
 Forma a través de la cual el programador se expresa
computacionalmente.
 Tipos de Lenguajes.
 Lenguajes de bajo nivel.
 Lenguajes de alto nivel.
 Estos dos tipos de lenguajes nos disminuyen o
aumentan el nivel de abstracción con el PC.

24
Algunos Lenguajes de Alto Nivel

 Compilados  Interpretados  Mixtos


C Javascript Python
C++ BASIC Perl
FORTRAN Scheme PHP
COBOL MATLAB Java
Pascal Mathematica
C# Smalltalk
BASIC Maple
Ruby

25
26

Anda mungkin juga menyukai