SlideShare una empresa de Scribd logo
1 de 111
Ingeniería de Sistemas E informática
Algoritmica I
Universidad Nacional Mayor de San Marcos
(DECANA DE AMERICA)
Prof.: BERNABE BERROSPI
ELOY ENRIQUE
Ingeniería de Sistemas E Informática Algoritmica II
2
PRESENTACIÓN
Estos cursos está diseñado para entrenar a los
alumnos en el uso de los algoritmos para luego
implementar en los lenguajes de programación
más actuales, de esta manera, el estudiante estará
preparado para entender y resolver una amplia
gama de problemas del mundo real.
Ingeniería de Sistemas E Informática Algoritmica II
3
requisitos
Objetivo de los cursos
El uso correcto de las técnicas Algoritmicas y Disponer de
una herramienta y técnicas de programación. Con los
cuales podrá afrontar con éxito los problemas reales que se
le presentaran en un ambiente de investigación o laboral.
Al final de los cursos el alumno podrá ejercer y
desempeñarse como programador de computadoras.
Manejo de técnicas Algoritmicas
Manejo de al menos dos lenguaje de programación
Manejo y un entendimiento Lógico de:
Sistemas Operativos, hardware PC,Compilador
Manejo de Proyectos
Ingeniería de Sistemas E Informática Algoritmica II
4
Abstraction Problem fundamental
Problema
Modelo
Interfa
Operaciones
estructura de datos
Ingeniería de Sistemas E Informática Algoritmica II
5
Sistema Computacional
“El modelado captura las
partes esenciales del sistema”
Abstracción - Modelado Visual
Mundo Real
Interface de Usuar
(Visual Basic,
Java, ..)
Lógica del Negocio
(C++, Java, ..)
Ingeniería de Sistemas E Informática Algoritmica II
6
Algoritmo
 Conjunto de reglas para resolver un
problema. Su ejecución requiere
unos recursos.
ALGORITMO
0 ó más
entradas
1 ó más
salidas
Memoria E/S Comunicaciones

Ingeniería de Sistemas E Informática Algoritmica II
7
REQUISITOS
Es recomendable que el alumno este familiarizado con el
manejo de un computadora y tener sólidos conocimientos en
matemáticas. Debe tener amplios conocimientos y criterios
que le permita comprender con rapidez sistemas reales para
poder programar comprender en sus diferentes contextos.
Manejo adecuado del álgebra de boole y manejo de sistemas
de numeración en base 2.
Además debe comprender lógicamente como trabaja
•hardware de computadora básico
•Manejo de sistema operativo
•Manejo de un compilador
Ingeniería de Sistemas E Informática Algoritmica II
8
Lógica de un Computador
Entrada
Salida
ORDENADOR
UNIDAD CENTRAL DE PROCESO
UNIDAD DE
CONTROL
UNIDAD
ARITMÉTICO
LÓGICA
MEMORIA PRINCIPAL
MEMORIA MASIVA
Instrucciones Datos
Datos e Instrucciones
Ingeniería de Sistemas E Informática Algoritmica II
9
Que es unComputador?
 Un computador es una maquina de entradas
y salidas
 Entiende términos de tipo
– 101011110001010001000101111010010101010
 En cambio nosotros
– “Sumar gastos de hoy a gastos semanales”
Ingeniería de Sistemas E Informática Algoritmica II
10
ModeloBásico deun Computador
Pentium
Atlhon
Cyrix …. Almacenami
ento
Secundario
Procesador
Central
Salida
Ram
Memoria
Principal
Entrada Disc
o
Dur
o
Ingeniería de Sistemas E Informática Algoritmica II
11
Users
System software
Programa
Hardware
Sistemas Operativos
uso y comprencion logica
Systema Operativo
Windows
98
windows
2000
DOS
LINUX
UNIX
UNIX
BSD
Ingeniería de Sistemas E Informática Algoritmica II
12
LENGUAJE DE PROGRAMACION
•Los Algoritmos encontradas en el diseño se tendrá que
implementar en un lenguaje de programación ya sea
C++,JAVA, Object Pascal etc...
•Aprender un lenguaje de programación es como
aprender un idioma . Se debe practicar constantemente.
•Un Lenguaje de Programación es el intermediario entre
el computador y el programador.
Ingeniería de Sistemas E Informática Algoritmica II
13
Algoritmos vs. Programa
 Un algoritmo es una secuencia de pasos
finitos, no ambiguos necesarios para
resolver un problema.
 La implementación de un algoritmo que
puede correr en un computador es llamado
programa
 Sistemas Operativos, Browser, juegos son
ejemplos de programas.
Ingeniería de Sistemas E Informática Algoritmica II
14
Queesprogramar?
 Mecanismo artificial necesario para decirle al
computador qué hacer.
 La programación no requiere talento inherente
 Pre-requisitos:
– Atención a detalle: los detalles cuentan en programación. No se
puede ser vago.
– Manejo de Estupidez: ellos hacen exactamente lo que les dices,
ni más ni menos. Depende del tipo de LP el nivel de
especificación.
– Buena Memoria: sintaxis del lenguaje, conjunto de funciones
prescritas disponibles para ser llamadas, parámetros a ser
aceptados, las variables y funciones definidas, y la experiencia
del pasado para ser aplicada cuando se reconocen los
síntomas.
– Habilidad de pensar abstractamente: Sólo si es posible pensar
en pequeñas piezas aisladas será posible trabajar con un gran
programa.
Ingeniería de Sistemas E Informática Algoritmica II
15
Code Size
400,000
Solaris 7
17 million
Netscape
40 million
Space Station
10 million
Space Shuttle
7 million
Boeing 777
35 million
NT5
Under 5 million
Windows 95
1.5 million
Linux
Lines of Code
Program/Application
Ingeniería de Sistemas E Informática Algoritmica II
16
Resolución de un Problema
Start w ith problem
statement
Analyze problem&
develop algorithm
Write source code
Run & test program
Is there more
problemsolving to
be done?
End
y es
no
Use program
Respuesta
= ‘2’
Problema
a Resolver
Ordenamie
ntode las
Ideas
Creación
del
Algoritmo
Codificació
n
Compilació
n
Ejecución
y
obtención
de
Análisis
Test
Correccion
es
Fin
Ingeniería de Sistemas E Informática Algoritmica II
17
 Las actividades del aprendizaje se encadenan
en una mini-cascada con un alcance limitado
por los objetivos de la iteración al aprender.
Ciclo del proceso de aprendizaje en la
programacion es Iterativo e Incremental
Análisis
Diseño
Codific.
Pruebas e
Integración
n veces
Ingeniería de Sistemas E Informática Algoritmica II
18
Curva de aprendizaje
Incomodidad
tiempo
El aprendizaje incluye tres aspectos:
-Manejo de Algoritmos en forma eficiente
- Metodología de programación.
- Conocimiento de un lenguaje Programación y
- Experiencia
Ingeniería de Sistemas E Informática Algoritmica II
19
MECANISMODE ENSEÑANZA-APRENDIZAJE
Cada lenguaje se estudiará mediante la realización de prácticas de laboratorio. En
estas prácticas el alumno aprenderá a utilizar el ambiente operativo de los lenguajes y
revisará código ejemplar. El curso incluye la resolución de ejercicios del texto que no
involucran la utilización de la computadora y los conceptos que se explicaran y
definirán en la teoria.
EVALUACIÓN
Se recomienda la realización de un examen por unidad. Es conveniente la
elaboración de al menos un proyecto final en alguno de los lenguajes estudiados. La
calificación consistirá de lo siguiente.
Exámenes 40%
Tareas 20%
Laboratorio 30%
Proyecto 10%
Ingeniería de Sistemas E Informática Algoritmica II
20
Uso del Internet Para agilizar y traspasarlas fronteras del
aprendizaje
El mundo se
tornó complejo y
difícil…
La Internet
– “Siempre encendida”
– No tiene dueño
– Múltiples aplicaciones
– La WWW
– El Doctor WEB
Internet
Ingeniería de Sistemas E Informática Algoritmica II
21
Resolución de problemas
Ingeniería de Sistemas E Informática Algoritmica II
22
Fases en la solución de un problema
Problema
Análisis
Especificación
Diseño
Algoritmo
Programación
Programa
Prueba
Ingeniería de Sistemas E Informática Algoritmica II
23
Diseño
 Esta etapa consiste en el diseño de
la solución al problema planteado.
 Esta solución se desarrolla en
función de un algoritmo.
El algoritmo es un conjunto finito de pasos, en
secuencia, que indican como se resuelve un
determinado problema.
Ingeniería de Sistemas E Informática Algoritmica II
24
Diseño
 Un algoritmo es una fórmula, un
conjunto de pasos para resolver
un problema.
 Los algoritmos se pueden
expresar en cualquier lenguaje,
desde lenguajes naturales como
Español hasta lenguajes de
programación como Java,
pasando por los Diagramas de
Flujo.
 Debe ser finito.
 Debe ser definido (sin
ambigüedades)
 Debe ser efectivo y eficiente.
Características de un Algoritmo
Ingeniería de Sistemas E Informática Algoritmica II
26
1.1. Definición y propiedades.
 Algoritmo: Conjunto de reglas para resolver un problema.
 Propiedades
– Definibilidad: El conjunto debe estar bien definido, sin dejar
dudas en su interpretación.
– Finitud: Debe tener un número finito de pasos que se ejecuten
en un tiempo finito.
ALGORITMO
0 ó más
entradas
1 ó más
salidas
Ingeniería de Sistemas E Informática Algoritmica II
27
1.1.Definición y propiedades.
 Algoritmos deterministas: Para los mismos datos de
entrada se producen los mismos datos de salida.
 Algoritmos no deterministas: Para los mismos datos de
entrada pueden producirse diferentes de salida.
 ALGORÍTMICA: Estudia técnicas para construir
algoritmos eficientes y técnicas para medir la eficacia
de los algoritmos.
 Objetivo: Dado un problema concreto encontrar la
mejor forma de resolverlo.
Ingeniería de Sistemas E Informática Algoritmica II
28
1.1.Definición y propiedades.
 Proceso clásico de desarrollo de programas.
– Especificación de requisitos del problema.
– Análisis del problema.
– Diseño de la solución.
– Implementación del diseño.
– Pruebas.
 Refinamiento por pasos sucesivos.
– Escribir la estructura de la solución en
pseudocódigo, de manera muy genérica.
– Especificar los pasos de forma cada vez más
detallada, y precisa.
– Repetimos el refinamiento hasta llegar a una
implementación.
Ingeniería de Sistemas E Informática Algoritmica II
29
1.1.Definición y propiedades.
 Diseño mediante abstracciones.
– Identificar los subproblemas.
– Especificación abstracta de cada uno de ellos.
– Implementar cada abstracción.
– Verificación del programa.
 Proceso de resolución propuesto por Aho.
Modelo
matemático
Algoritmo
informal
Tipos de datos
abstractos
Programa en
pseudolenguaje
Estructuras
de datos
Programa
en Pascal
Ingeniería de Sistemas E Informática Algoritmica II
30
Resolución
de un
problema
Análisis del
problema
Diseño del
algoritmo
Programación
del algoritmo
•definición del problema
•especificaciones de
entrada
•especificaciones de salida
•diseño modular o
descendente
•refinamiento por pasos
•codificación del
programa
•ejecución del programa
•comprobación
El Algoritmo , resultado de la fase de
Diseño, pasa a la fase de
Programación para ser traducido a
un lenguaje de programación.
Class Programa {
...........
Public static void
main() {
....
}
}
En general es una tarea
totalmente mecánica.
Diseño
Ingeniería de Sistemas E Informática Algoritmica II
32
¿Cómo generar un Algoritmo?
Los pasos que se deben seguir para la obtención de un
algoritmo a partir del problema en estudio son los siguientes:
1. Determinación del Objetivo del problema.
2. Estipulación escrita del problema
3. Identificación de los datos de entrada y salida.
4. Determinación del proceso y de los datos integrantes del algoritmo.
5. Identificación de las variables interna.
6. Dividir el proceso en acciones atómicas
7. Determinación de los cursos de acción
8. Determinación de la secuencialidad de las acciones en cada uno de los
cursos de acción.
9. Incorporación de estructuras de control para la unificación de los cursos de
acción.
10. Generación del algoritmo
Ingeniería de Sistemas E Informática Algoritmica II
33
Algoritmos vs. Programa
 Un algoritmo es una secuencia de pasos
finitos, no ambiguos y finitos necesarios
para resolver un problema.
 La implementación de un algoritmo que
puede correr en un computador es llamado
programa
 Sistemas Operativos, Browser, juegos son
ejemplos de programas.
Ingeniería de Sistemas E Informática Algoritmica II
34
1.- Funcionamiento del programa
2.- Claridad
- indentado, sangrías
- comentarios (al usuario y al corrector)
3.- Estilo de programación
- buen y correcto uso de variables
- algoritmos usados
- uso de funciones y procedimientos
Partes importantes en la
realización de un programa
Ingeniería de Sistemas E Informática Algoritmica II
35
Desarrollo de Algoritmos
Ingeniería de Sistemas E Informática Algoritmica II
36
 Es un lenguaje bastante coloquial en español ó
inglés.
 Consta de un conjunto de frases con restricciones
que pueden utilizarse en la especificación de
programas.
 Su objetivo es un balance razonable entre la
precisión formal de un lenguaje de programación y
la informalidad y legibilidad del lenguaje natural.
Pseudocódigo
Desarrollo de Algoritmos
Ingeniería de Sistemas E Informática Algoritmica II
37
Los verbos a utilizar para
describir los pasos a seguir en la
solución de un problema son:
• CALCULAR
• OBTENER
• LEER
• MOSTRAR
• ESCRIBIR
Pseudocódigo
Ingeniería de Sistemas E Informática Algoritmica II
38
Veamos un
ejemplo..
MOSTRAR “Hola”
ESCRIBIR “Hola”
Pseudocódigo
Ingeniería de Sistemas E Informática Algoritmica II
39
Otro ejemplo..
CALCULAR X  A + B
2500
Para lograr esto debemos primero
conocer los elementos que
componen un programa.
Pseudocódigo
Ingeniería de Sistemas E Informática Algoritmica II
40
•Son elementos de un programa todos aquellos
manipulados por instrucciones.
•Mediante ellos podemos hacer almacenamient
de datos obtener resultados de las distintas
operaciones necesarias para la solución del
problema.
Tenemos tres tipos de elementos de programa
Constantes
Variables
Expresiones
Elementos de un programa
Ingeniería de Sistemas E Informática Algoritmica II
41
Constantes
Están almacenadas en la memoria
del computador y su valor NO
cambia a lo largo del programa.
Poseen tres atributos:
Nombre, Tipo y Valor.
Pi Nombre
Elementos de un programa
3.14 Valor
Tipo
(Numérico)
Ingeniería de Sistemas E Informática Algoritmica II
42
Variables
edad Nombre nombre
Elementos de un programa
Están almacenadas en la memoria
del computador y su valor puede
cambiar a lo largo del programa.
Poseen tres atributos:
Nombre, Tipo y Valor.
(Numérico)
Tipo
(Alfanumérico)
Valo
r
21 “Juan Perez
Ingeniería de Sistemas E Informática Algoritmica II
43
Variables
Las variables pueden ser de dos tipos :
 Variables sencillas:
edad
nombre
2.Variables subindicadas o con
subíndices.
Ingeniería de Sistemas E Informática Algoritmica II
44
Variables subindicadas o con subíndices
Las variables con subíndice sirven para representar
un tipo de dato denominado arreglos.
Arreglos:
Conjunto de valores agrupados todos bajo un solo
identificador. Este conjunto de valores deben ser
todos del mismo tipo
Ingeniería de Sistemas E Informática Algoritmica II
45
Tipos de arreglos:
De una dimensión
Variables subindicadas o
con subíndices
0 2 3 4 5 6
1
Posición
Para determinar en que posición del
arreglo se encuentra un determinado
valor se utiliza un índice.
Ingeniería de Sistemas E Informática Algoritmica II
46
Arreglos de una dimensión
María Luis Alejandro Karla
nombres
Para hacer referencia a un elemento del
arreglo se escribe
nombres (1)
Nombre
de la
Posición dentro
del arreglo
0 1 2 3
Ingeniería de Sistemas E Informática Algoritmica II
47
Arreglos de dos
dimensiones
Petare
venezolano
Luis
Los
Chorros
venezolano
Carlos
Los
Naranjos
venezolana
María
En un arreglo de
dos dimensiones o
matriz, para ubicar
la posición de un
elemento se
requiere de dos
subindices: uno
para indicar la fila y
otro para indicar la
columna.
datos
datos
(0,0)
= Maria
0 1 2
1
0
2
Ingeniería de Sistemas E Informática Algoritmica II
48
Para cambiar el valor a una
variable decimos:
ASIGNAR edad 15
Elementos de un programa
Variables
Donde el símbolo indica que se
dará el valor 15 a la variable edad.
ASIGNAR datos(0,0) Loren
Ingeniería de Sistemas E Informática Algoritmica II
49
Elementos de un programa
Los nombres de constantes y /o variables
deben seguir las siguientes reglas:
Usar nombres significativos. La primera
letra del nombre deberá ser minúscula.
•Edad
•Cada nombre estará compuesto por
dos ó mas sílabas. Pueden usarse
varias palabras para el nombre.
hora horaLlegada
Ingeniería de Sistemas E Informática Algoritmica II
50
Expresiones
Elementos de un programa
Son conjuntos de variables y/o
constantes unidas o relacionadas por
operadores.
Hay tres tipos de expresiones:
- Numéricas
- Alfanuméricas
- Lógicas
Ingeniería de Sistemas E Informática Algoritmica II
51
Expresiones Numéricas
Las que producen resultados de
tipo numérico.
X  Y + 5 – 7 + C
Para su construcción se utilizan los
Operadores aritméticos.
( ) Paréntesis
^
Potencia
*
Multiplicaci
Elementos
de un
programa
Ingeniería de Sistemas E Informática Algoritmica II
52
Al evaluar expresiones numéricas
debemos tomar en cuenta el
orden de precedencia de las
operaciones:
1. Paréntesis
2. Potencias
3. Multiplicación y División
4. Suma y Resta
Expresiones Numéricas
Elementos
de un
programa
Ingeniería de Sistemas E Informática Algoritmica II
53
Calcular suma  var1 +
var2 + var3
Supongamos tres variables con
sus valores.
8
var 2
5
var1
3
var3
¿Cómo expresaríamos el darle a una
variable suma el valor resultado de
sumar los tres valores?
Expresiones Numéricas
Elementos
de un
programa
16
suma
Ingeniería de Sistemas E Informática Algoritmica II
54
Calcular suma  (var1 + var2) * var3 +
( var 2 / 2 )
43
suma
Expresiones Numéricas
Elementos
de un
programa
Otros ejemplos:
8
var 2
5
var1
3
var3
Ingeniería de Sistemas E Informática Algoritmica II
55
Calcular suma  var1 + ( var2 * var3)
+ ( var 2 / 2 )
33
suma
Expresiones Numéricas
Elementos de
un programa
Otros ejemplos:
8
var 2
5
var1
3
var3
Ingeniería de Sistemas E Informática Algoritmica II
56
Elementos de
un programa
Expresiones Numéricas
Otros ejemplos:
120.000,0
0
1400000,
00
98.000,00
178.999,0
0
sueldos
Calcular sueldoTotal  sueldos( 0 ) + sueldos( 1) + sueldos
(2) + sueldos (3)
1.796.999,00
Ingeniería de Sistemas E Informática Algoritmica II
57
Las que producen resultados de
tipo alfanumérico.
Ejemplo:
(Alfanumérico)
“Pedro”
nombre
(Alfanumérico)
“Perez”
apellido
(Alfanumérico)
????
nombreCompleto
Expresiones Alfanuméricas
Elementos
de un
programa
Ingeniería de Sistemas E Informática Algoritmica II
58
Son las que producen resultados
de tipo lógico, es decir, Verdadero
o Falso. (True – False)
(A > 0)
(B < 5)
(C = D)
(F != E)
Expresiones Lógicas
Elementos de un programa
Ingeniería de Sistemas E Informática Algoritmica II
59
Para su construcción se utilizan los
Operadores Relacionales.
= Igual
< Menor que
<= Menor o igual que
> Mayor que
>= Mayor o igual que
!= Distinto a
Expresiones Lógicas
Elementos
de un
programa
Ingeniería de Sistemas E Informática Algoritmica II
60
( 5 > 2 )  Verdadero (
True )
( 6 < 2 )  Falso ( False
)
Expresiones
Lógicas
Elementos
de un
programa
Por
ejemplo
Ingeniería de Sistemas E Informática Algoritmica II
61
( var2 > var1 ) 
Verdadero
( var2 < var3 ) 
Supongamos tres variables con
sus valores.
Veamos el resultado de evaluar las
siguientes expresiones lógicas
Expresiones Lógicas
Elementos
de un
programa
8
var 2
5
var1
3
var3
Ingeniería de Sistemas E Informática Algoritmica II
62
Podemos combinar varias
expresiones lógicas utilizando los
operadores booleanos.
Por ejemplo:
(var1 > 0) AND (var2 < 5)
AND
Conjunció
n
OR
Disjunció
n
Expresiones Lógicas
Elementos
de un
programa
Ingeniería de Sistemas E Informática Algoritmica II
63
( 5 > 2) AND ( 6 < 2)
Falso
( 5 > 2) AND ( 6 > 2)
Cierto
Elementos
de un
programa
Ejempl
os
Expresiones Lógicas
Ingeniería de Sistemas E Informática Algoritmica II
64
(( var2 > var1 ) AND (var2
> var3))
Supongamos tres variables con
sus valores.
Veamos el resultado de evaluar las
siguientes expresiones lógicas
Expresiones Lógicas
Elementos de un programa
8
var 2
5
var1
3
var3
Verdadero
Falso
Verdadero
(( var2 < var3 ) AND (var1
< var2))
(( var1 = var3 ) OR (var1
Ingeniería de Sistemas E Informática Algoritmica II
65
 Es un lenguaje bastante coloquial en español ó inglés.
 Consta de un conjunto de frases con restricciones que
pueden utilizarse en la especificación de programas.
 Su objetivo es un balance razonable entre la precisión
formal de un lenguaje de programación y la informalidad
y legibilidad del lenguaje natural.
Pseudocódigo
Resumen
Ingeniería de Sistemas E Informática Algoritmica II
66
Escribir un algoritmo que permita
calcular el área de un triángulo
1.Inicio CalculoArea
2.base, altura,area: numérico
3.Leer base, altura
4. Calcular area  (base * altura)/2
6. Terminar CalculoArea
Entrada: base, altura : numérico
Salida: area: numérico
5. Mostrar (“El area del triangulo es” , area)
Ingeniería de Sistemas E Informática Algoritmica II
67
Algoritm
1.Inicio CalculoMonto
2.precio,monto: numérico
3.Leer precio
4.Si (precio > 10.000) entonces
Decisión
4.1 Calcular monto  (precio – (precio * 0.06))
4.2 Calcular monto  (precio – (precio * 0.05))
sino
5. Mostrar (“El monto a pagar es:” , monto)
6. Terminar CalculoMonto
Entrada: precio: numérico
Salida: monto: numerico
Ingeniería de Sistemas E Informática Algoritmica II
68
Escribir un programa que lea tres números y los imprima.
Algoritmo
1. Inicio TresNúmeros num1,num2,num3: numérico
2. Leer num1,num2,num3
3. Mostrar (“Los números son: “ num1,num2,num3)
4. Terminar TresNúmeros
Entrada:num1, num2, num3: numérico
Salida:
num1, num2, num3: numérico
Ingeniería de Sistemas E Informática Algoritmica II
69
Escribir un programa que lea tres números, los sume e imprima el resultado de la
suma.
Entrada:num1, num2, num3: numérico
Salida:
suma: numérico
Ejemplo
Algoritmo
1. Inicio TresNumeros
2. num1,num2,num3,suma: numérico
3. Leer num1,num2,num3
4. Calcular suma num1+num2+num3
5. Escribir(“La suma es: “ suma)
6. Terminar TresNumeros
Ingeniería de Sistemas E Informática Algoritmica II
70
Escribir unprograma queleatres números,lossume y multipliquee imprima el resultadomayor.
Entrada:
num1, num2, num3:
numérico
Salida:
suma, multi: numérico
Ejercicio
Algoritmo
1.Inicio TresNumeros
2.num1,num2,num3,suma, multi: numérico
3.Leer num1,num2,num3
4.Calcular suma  num1+num2+num3
5.Calcular multi  num1*num2*num3
6.Si suma > multi entonces
6.1 Escribir (“El resultado mayor es :” suma)
Sino
6.2 Escribir (“El resultado mayor es :” multi)
7. Terminar TresNumeros
Lenguaje de Programación C
Ingeniería de Sistemas E Informática Algoritmica II
72
Acerca de C
 C fue desarrollado por Brian Kernighan y Dennis
Ritchie en los laboratorios Bell.
 Valores son guardados en Variables
 Programas son estructurados por funciones.
 Flujo de Control es controlado usando loops,
sentencias y llamadas a funciones.
 Entrada y Salida son dirigidas a archivos o al
terminal.
 Datos son almacenados juntos en arreglos o
estructuras.
 C permite un control mas preciso de entradas y
salidas  Programas pequenos mas eficientes
 C es un lenguaje amigable
 ANSI C es proclamado la versión estándar del
lenguaje.
Ingeniería de Sistemas E Informática Algoritmica II
73
Historia
 1967, Martin Richard crea el lenguaje BCPL
 1970, Ken Thompson crea el lenguaje B.
– Transportable.
– Lenguaje evolucionado e independiente de la máquina.
 1972, Dennis Ritchie y Brian Kernighan en los Laboratorios
Bell de AT&T crea el lenguaje C modicando el lenguaje B.
Reescribe Unix en C.
– Se diseñan tipos y estructuras de datos.
– Incluye punteros y funciones.
– Riqueza de operadores.
 1983, el instituto de estándares americano (ANSI) crea un
estándar que definiera el lenguaje C.
 1990, el estándar es adoptado.
Ingeniería de Sistemas E Informática Algoritmica II
74
UNIX
 Sistema UNIX fue escrito en C.
 C fue inventado específicamente para
implementar UNIX.
 Todos los comandos de UNIX mas todas las
facilidades tales como “revision de
password”, “colas de impresión”, o
controladores de devices son escritos en C.
 Poderosos sistemas pueden ser creados al
escribir en C y utilizando las librerías del
sistema UNIX.
Ingeniería de Sistemas E Informática Algoritmica II
75
Usando C y UNIX
 Conocimiento previo.
 Ciclo:
– Escribir el programa en un archivo
– Compilar el programa
– Ejecutar el programa
 Durante el desarrollo del programa, el
programador puede repetir el ciclo
muchas veces, refinando, testeando, y
haciendo debugging hasta alcanzar la
refinación deseada.
Ingeniería de Sistemas E Informática Algoritmica II
76
Escribir, Compilar, ejecutar el Programa
 UNIX espera que su programa sea
guardado en un archivo cuyo nombre
finaliza en “.c”
 Para editar, utilizar un editor como “jed”,
“emacs”, o “vi”
– >> jed prueba.c
 Para Compilar se utiliza un compilador de
la forma:
– >>cc prueba.c –o prueba
 Para ejecutar bajo UNIX solo se debe
escribir:
– >>prueba o >>./prueba
Compilador de
UNIX
Ingeniería de Sistemas E Informática Algoritmica II
77
Traductores
 Traducen el lenguaje de alto nivel a
lenguaje de máquina.
 Se refieren a la forma en que se ejecuta el
programa
– Interpretes: lee el código de un programa línea
a línea realizando las instrucciones.
– Compiladores: lee el programa entero y lo
convierte en código objeto que puede ser
ejecutado por la maquina directamente.
Ingeniería de Sistemas E Informática Algoritmica II
78
Ejemplo
/* Programa Hola Mundo*/
#include <stdio.h>
int main( )
{
printf(“Hola
Mundo!!!");
return ( ) ;
}
pincoya>>gcc -Wall
hello.c
pincoya>> ./a.out
a.out
Compilar
Compila
dor(gcc)
Progra
ma
hola.o
Códig
o
Objet
Enlace
Enlaza
dor
hola.c
Ejecutable
Ingeniería de Sistemas E Informática Algoritmica II
79
Programa ejecutable
 Los siguientes pasos hay que seguir
para obtener un programa ejecutable:
Programa
Fuente
Compilado
rPrograma
Objeto
Enlace
Librerías
Programa
Ejecutabl
e
Ingeniería de Sistemas E Informática Algoritmica II
80
Compiladores C
 Para el sistema operativo Linux:
– lcc
– gcc
 Para el sistema operativo Windows:
– Turbo C/C++
– Borland C/C++
– Visual C++
 Editores de texto para Linux:
– jed, emacs.
Ingeniería de Sistemas E Informática Algoritmica II
81
Declaraciones globales
f1()
{
variables locales
secuencia de sentencias
}
.
..
fN()
{ variables locales
secuencia de sentencias
}
main(){
variables locales
secuencia de sentencias
}
Estructura de un programa
Ingeniería de Sistemas E Informática Algoritmica II
82
Estructura de un programa
 Todos los programas en C consisten en
una o más funciones.
 La única función que debe estar
absolutamente presente es la denominada
main() , siendo la primera función que es
llamada cuando comienza la ejecución del
programa.
Ingeniería de Sistemas E Informática Algoritmica II
83
Estructura de memoria de Turbo C
Pila
Montón
Variable Globales
Código del
programa
Preguntas
Tipos, Operadores y Expresiones.
Romina Torres
Ingeniería de Sistemas E Informática Algoritmica II
86
Introducción
 Variables y Constantes son los objetos de
datos básicos manipulados en un
programa.
 Las declaraciones establecen las
variables a ser usadas, su tipo y su valor
inicial.
 Operadores especifican que se hace con
las variables.
 Expresiones combinan variables y
constantes para producir nuevos
resultados.
Ingeniería de Sistemas E Informática Algoritmica II
87
Nombres de Variables
 Nombres son hechos de letras y dígitos.
 El símbolo underscore “_” cuenta como
letra.
 Letras mayúsculas y minúsculas son
diferentes.
 Tradicionalmente se utiliza letras
minúsculas para nombres de variables y
letras mayúsculas para nombres de
constantes.
 Nombres de palabras reservadas no
pueden ser utilizadas:
Palabras Reservadas
Ingeniería de Sistemas E Informática Algoritmica II
89
Tipos de Variables
 En C una variable debe ser declarada antes de
ser usada.
 Pueden ser declaradas al comienzo de cualquier
bloque de código, pero la mayoría son
encontradas al comienzo de la función.
 Una declaración comienza con un tipo, seguido
por el nombre de una o mas variables.
– int num=4, cel[20];/*Ver Tipos*/
Tipo Nombre
Asignación
Comentari
o
Ingeniería de Sistemas E Informática Algoritmica II
91
Constantes
 Son valores fijos que no pueden ser alterados por
el programa. Pueden ser de cualquier tipo de
datos.
 Una constante en C es solo la versión escrita de
un numero.
 Ejemplo: 4, 3e5
 Un carácter constante usualmente es solo un
carácter encerrado entre cremillas ‘a’
 Valor de un carácter constante es el valor
numérico en el conjunto de caracteres de la
maquina.
Ingeniería de Sistemas E Informática Algoritmica II
92
Constantes
 Expresión Constante es una expresión
que involucra solo constantes
 Son evaluadas en tiempo de compilación
– Ejemplo: #define MAX 1000
 String constante es una secuencia de cero
o mas caracteres encerrado entre
cremillas tal como “Lenguaje de
Programacion en C”
 Las cremillas son delimitadores.
 El carácter nulo ‘0’ es automaticamente
colocado al final de tal string
Ingeniería de Sistemas E Informática Algoritmica II
93
Declaración de constantes
 Son valores fijos que no pueden ser
alterados por el programa. Pueden ser de
cualquier tipo de datos.
– Ejemplo ‘a’ ‘n’ ‘9’ 1 123 35000 123.23
 Para declarar constantes se puede utilizar
la directiva #define.
– Ejemplo
#define Maximo 1000
Ingeniería de Sistemas E Informática Algoritmica II
94
Tipo
lista_de_variable
s;
Declaración de variables
 Todas las variables han de ser declaradas
antes de ser usadas y pueden cambiar su
valor durante la ejecución del programa.
 Forma:
– tipo: debe ser un tipo de datos válido de C-
– lista_de_variables : puede consistir en uno o
más identificadores separados por comas.
Ingeniería de Sistemas E Informática Algoritmica II
95
Declaraciones
 Todas las variables deben ser declaradas
antes de ser usadas.
 Una declaración especifica un tipo y lista
una o mas variables de ese tipo.
int a,b,c;
int a;
int b;
int c;
Ingeniería de Sistemas E Informática Algoritmica II
96
Variables Locales vs. Globales
 Variables locales son declaradas dentro
del cuerpo de una función y solo pueden
ser usadas dentro de esa función.
 Estará disponible para otras funciones
solo si al ser llamadas desde la función
actual, son pasados los valores de las
variables.
 Una variable global estará disponible para
todas las funciones.
 Practicas Modernas de Programación
recomiendan no abusar del uso de estas
variables.
Ingeniería de Sistemas E Informática Algoritmica II
97
Nombre_de_variable =
constante;
Inicialización de variables
 La asignación se realiza usando el signo
‘=‘, donde la constante del lado derecho
se asigna al lado izquierdo.
Ingeniería de Sistemas E Informática Algoritmica II
98
Comentarios
 Los comentarios en C va entre los
símbolos /* y */.
 Pueden ir ubicados en cualquier parte del
programa.
– Ejemplo:
…
/* Este es un
comentario */
...
Ingeniería de Sistemas E Informática Algoritmica II
99
Variables Externas
 Cuando se utiliza desde una función en un
archivo A una variable declarada en un archivo B,
debe declararse en la función del archivo A como
variable externa.
Archivo A Archivo B
f0(){
extern int a;
...}
f1(){…}
int main(){…}
int a;
g1(){
a=4;
...
}
g2(){
…
}
int main(){…}
Ingeniería de Sistemas E Informática Algoritmica II
100
Variables Estáticas
 Son declaradas como Variables locales,
pero su declaración es precedida por la
palabra static
 Puede ser accesada solo desde la función
en que fue declarada.
 Inicializada solo una vez. No es destruida
a la salida de la función, sino su valor es
preservado, y estará disponible en la
próxima llamada a la función
int f1(){…
static int a;
…}
int main(){…
f1();
…}
Operadores y Expresiones
Ingeniería de Sistemas E Informática Algoritmica II
102
Operaciones y Expresiones
 Una de las Potencias de C es su amplio rango de
operadores necesarios.
 Un operador es una función que es aplicada a
valores para dar un resultado.
 Existen operadores aritméticos, comparación de
valores, combinación de estados lógicos y
manipulación de dígitos individuales unitarios.
 Los operadores y valores son combinados para
formar expresiones.
 Sentencia de Asignación:
– Una expresión es evaluada y el resultado es guardado
en una variable  y= a*x+b
Ingeniería de Sistemas E Informática Algoritmica II
103
Operadores Aritméticos
Acción
Operador
Resto de división
entera
%
Incremento
++
Decremento
--
División
/
Multiplicación
*
Substracción
-
Adición
+
Ingeniería de Sistemas E Informática Algoritmica II
104
Operadores Relacionales
Acción
Operador
Igual
==
No igual
!=
Menor que o igual
<=
Menor que
<
Mayor que o igual
>=
Mayor que
>
Ingeniería de Sistemas E Informática Algoritmica II
105
Operadores Lógicos
Acción
Operador
Y
&&
NO
!
O
||
Y
&&
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
!p
p||q
p&&q
q
p
Tabla de Verdad
Ingeniería de Sistemas E Informática Algoritmica II
106
Valores booleanos?
 Los valores lógicos o booleanos no tienen
un tipo especial.
 Se puede utilizar cualquier tipo integral
que tenga un valor 0 representando falso
y cualquier otro valor representando el
verdadero.
Ingeniería de Sistemas E Informática Algoritmica II
107
Precedencias
 Si existen más de un
operador perteneciente a
un mismo nivel, la
prioridad va de izquierda a
derecha.
,
=, +=, -=, *=, /=
||
&&
==, !=
<, <=, >, >=
+, -
*, /, %
!, ++, --, -, (tipo)
()
(x>=10 && x<20) || x<5
If(!NULL) printf(“…”);
Ingeniería de Sistemas E Informática Algoritmica II
108
Conversión de tipos
 Cuando en una expresión se mezclan
constantes y variables de un mismo tipo y
variables de distinto tipos, se convierten a
un tipo único.
 El compilador C convierte todos los
operandos al tipo del mayor operando.
Ingeniería de Sistemas E Informática Algoritmica II
109
Conversión de Tipos
 Se pueden mezclar los tipos de valores en
expresiones aritméticas
 Valores pasados a funciones como argumentos
debe ser del tipo correcto
 Si los tamaños son diferentes:
– El resultante adoptara el tamaño mayor
 No hay problema en asignar un valor a una variable
de diferente tamaño.
 Excepciones:
– La variable es demasiado pequeña para sostener el valor.
CORRUPTO
– Si la variable es tipo entera y se le asigna un valor real, el
valor es redondeado.
Ingeniería de Sistemas E Informática Algoritmica II
110
Conversión de tipos
 Regla:
– Cualquier char y long int es convertido a int. Cualquier
float es convertido a double.
– Para todos los pares de operandos, si uno de los
operandos es long double, el otro operando se
convierte a long double.
– Si no, si un operando es double, entonces el
otro se convierte a double.
– Si no, si un operando es long, entonces el otro
se convierte a long.
– Si no, si un operando es unsigned, entonces el
otro se convierte a unsigned.
Ingeniería de Sistemas E Informática Algoritmica II
111
Conversión de tipos, Ejemplo
char ch;
int i;
float f;
double d;
result= ( ch / i) + (f * d) - ( f + i );
int double double
int double double
double
Ingeniería de Sistemas E Informática Algoritmica II
112
 Sirven para forzar que una variable sea de
un cierto tipo.
 Forma general:
 Ejemplo:
(tipo)expresi
ón
int i;
float x;
…
x=(float)
i/1;
Moldes
Ingeniería de Sistemas E Informática Algoritmica II
113
Shorthand
i=i%10
i%=10
i=i/10
i/=10
i=i*10
i*=10
i=i+10
i+=10
i=i-1
i-- o --i
i=i+1
i++ o ++i
Equivalente
Shorthand

Más contenido relacionado

Similar a Introduccion.ppt

Algoritmos
Algoritmos Algoritmos
Algoritmos ANIMEFLV
 
Teoria Algoritmia
Teoria AlgoritmiaTeoria Algoritmia
Teoria Algoritmiadarioc77
 
Programación algoritmica
Programación algoritmicaProgramación algoritmica
Programación algoritmicaMaría C. Plata
 
Taller Tecnología Actividad #2.pdf
Taller Tecnología Actividad #2.pdfTaller Tecnología Actividad #2.pdf
Taller Tecnología Actividad #2.pdfGabrielaParedes63
 
Taller Tecnología Actividad #2.pdf
Taller Tecnología Actividad #2.pdfTaller Tecnología Actividad #2.pdf
Taller Tecnología Actividad #2.pdfGabrielaIbarra71
 
Taller Tecnología Actividad #2 (1).pdf
Taller Tecnología Actividad #2 (1).pdfTaller Tecnología Actividad #2 (1).pdf
Taller Tecnología Actividad #2 (1).pdfSaraDanielaMoraSanch
 
Taller Tecnología Actividad #2.pdf
Taller Tecnología Actividad #2.pdfTaller Tecnología Actividad #2.pdf
Taller Tecnología Actividad #2.pdfalejandra225361
 
Algoritmos, programas, compiladores y lenguajes de programacion
Algoritmos, programas, compiladores y lenguajes de programacionAlgoritmos, programas, compiladores y lenguajes de programacion
Algoritmos, programas, compiladores y lenguajes de programacionBoris Salleg
 
Pasos para realizar un problema en computador
Pasos para realizar un problema en computadorPasos para realizar un problema en computador
Pasos para realizar un problema en computadorAlex Rommyo
 
UNIDAD 2_Tema 1.pdf
UNIDAD 2_Tema 1.pdfUNIDAD 2_Tema 1.pdf
UNIDAD 2_Tema 1.pdfjaimelovato
 
PROGRAMACION BASICA, INICIACION A LA PROGRAMACION .pptx
PROGRAMACION BASICA, INICIACION A LA PROGRAMACION .pptxPROGRAMACION BASICA, INICIACION A LA PROGRAMACION .pptx
PROGRAMACION BASICA, INICIACION A LA PROGRAMACION .pptxdianafuentes94
 
Pasos para realizar un problema en computador
Pasos para realizar un problema en computadorPasos para realizar un problema en computador
Pasos para realizar un problema en computadorAlex Rommyo
 
Tema1b 120417003759-phpapp01
Tema1b 120417003759-phpapp01Tema1b 120417003759-phpapp01
Tema1b 120417003759-phpapp01Fernando Jim
 
Presentacion ip algoritmia_2012_i_v2_parte_i
Presentacion ip algoritmia_2012_i_v2_parte_iPresentacion ip algoritmia_2012_i_v2_parte_i
Presentacion ip algoritmia_2012_i_v2_parte_iymendal
 
Manual de programacion #1
Manual de programacion #1Manual de programacion #1
Manual de programacion #1Laura Miranda
 

Similar a Introduccion.ppt (20)

Algoritmos
Algoritmos Algoritmos
Algoritmos
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Teoria Algoritmia
Teoria AlgoritmiaTeoria Algoritmia
Teoria Algoritmia
 
Programación algoritmica
Programación algoritmicaProgramación algoritmica
Programación algoritmica
 
Taller Tecnología Actividad #2.pdf
Taller Tecnología Actividad #2.pdfTaller Tecnología Actividad #2.pdf
Taller Tecnología Actividad #2.pdf
 
Taller Tecnología Actividad #2.pdf
Taller Tecnología Actividad #2.pdfTaller Tecnología Actividad #2.pdf
Taller Tecnología Actividad #2.pdf
 
Taller Tecnología Actividad #2 (1).pdf
Taller Tecnología Actividad #2 (1).pdfTaller Tecnología Actividad #2 (1).pdf
Taller Tecnología Actividad #2 (1).pdf
 
Taller Tecnología Actividad #2.pdf
Taller Tecnología Actividad #2.pdfTaller Tecnología Actividad #2.pdf
Taller Tecnología Actividad #2.pdf
 
Algoritmos, programas, compiladores y lenguajes de programacion
Algoritmos, programas, compiladores y lenguajes de programacionAlgoritmos, programas, compiladores y lenguajes de programacion
Algoritmos, programas, compiladores y lenguajes de programacion
 
Pasos para realizar un problema en computador
Pasos para realizar un problema en computadorPasos para realizar un problema en computador
Pasos para realizar un problema en computador
 
Clase 01
Clase 01Clase 01
Clase 01
 
UNIDAD 2_Tema 1.pdf
UNIDAD 2_Tema 1.pdfUNIDAD 2_Tema 1.pdf
UNIDAD 2_Tema 1.pdf
 
Resolucion de problemas
Resolucion de problemasResolucion de problemas
Resolucion de problemas
 
algoritmica
algoritmicaalgoritmica
algoritmica
 
PROGRAMACION BASICA, INICIACION A LA PROGRAMACION .pptx
PROGRAMACION BASICA, INICIACION A LA PROGRAMACION .pptxPROGRAMACION BASICA, INICIACION A LA PROGRAMACION .pptx
PROGRAMACION BASICA, INICIACION A LA PROGRAMACION .pptx
 
Pasos para realizar un problema en computador
Pasos para realizar un problema en computadorPasos para realizar un problema en computador
Pasos para realizar un problema en computador
 
Programacion
Programacion Programacion
Programacion
 
Tema1b 120417003759-phpapp01
Tema1b 120417003759-phpapp01Tema1b 120417003759-phpapp01
Tema1b 120417003759-phpapp01
 
Presentacion ip algoritmia_2012_i_v2_parte_i
Presentacion ip algoritmia_2012_i_v2_parte_iPresentacion ip algoritmia_2012_i_v2_parte_i
Presentacion ip algoritmia_2012_i_v2_parte_i
 
Manual de programacion #1
Manual de programacion #1Manual de programacion #1
Manual de programacion #1
 

Más de Daniel Carpio Contreras (13)

Teoria-Sistemas-Clases-09-10.ppt
Teoria-Sistemas-Clases-09-10.pptTeoria-Sistemas-Clases-09-10.ppt
Teoria-Sistemas-Clases-09-10.ppt
 
Teoria-Sistemas-Clases-01-06.ppt
Teoria-Sistemas-Clases-01-06.pptTeoria-Sistemas-Clases-01-06.ppt
Teoria-Sistemas-Clases-01-06.ppt
 
Teoria-Sistemas-Clases-15-16.ppt
Teoria-Sistemas-Clases-15-16.pptTeoria-Sistemas-Clases-15-16.ppt
Teoria-Sistemas-Clases-15-16.ppt
 
Teoria-Sistemas-Clases-13-14.ppt
Teoria-Sistemas-Clases-13-14.pptTeoria-Sistemas-Clases-13-14.ppt
Teoria-Sistemas-Clases-13-14.ppt
 
Teoria-Sistemas-Clases-07-08.ppt
Teoria-Sistemas-Clases-07-08.pptTeoria-Sistemas-Clases-07-08.ppt
Teoria-Sistemas-Clases-07-08.ppt
 
AudInf-COBIT.ppt
AudInf-COBIT.pptAudInf-COBIT.ppt
AudInf-COBIT.ppt
 
La+Teoria+General+de+Sistemas.doc
La+Teoria+General+de+Sistemas.docLa+Teoria+General+de+Sistemas.doc
La+Teoria+General+de+Sistemas.doc
 
Usando la Teoría de Control
Usando la Teoría de ControlUsando la Teoría de Control
Usando la Teoría de Control
 
Archivos.pdf
Archivos.pdfArchivos.pdf
Archivos.pdf
 
Manual de C++.pdf
Manual de C++.pdfManual de C++.pdf
Manual de C++.pdf
 
Introduccion a C++.pdf
Introduccion a C++.pdfIntroduccion a C++.pdf
Introduccion a C++.pdf
 
Manejo_archivos.ppt
Manejo_archivos.pptManejo_archivos.ppt
Manejo_archivos.ppt
 
Programación C++.pdf
Programación C++.pdfProgramación C++.pdf
Programación C++.pdf
 

Último

tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdfvictoralejandroayala2
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVSebastianPaez47
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesElianaCceresTorrico
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdffredyflores58
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdfFernandaGarca788912
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfDiegoMadrigal21
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricoalexcala5
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptCRISTOFERSERGIOCANAL
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptxguillermosantana15
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxSergioGJimenezMorean
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxbingoscarlet
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónXimenaFallaLecca1
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptxBRAYANJOSEPTSANJINEZ
 
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.pptoscarvielma45
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxMarcelaArancibiaRojo
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrialGibranDiaz7
 

Último (20)

tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdf
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdf
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdf
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctrico
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
 
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptx
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcción
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
 
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docx
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrial
 

Introduccion.ppt

  • 1. Ingeniería de Sistemas E informática Algoritmica I Universidad Nacional Mayor de San Marcos (DECANA DE AMERICA) Prof.: BERNABE BERROSPI ELOY ENRIQUE
  • 2. Ingeniería de Sistemas E Informática Algoritmica II 2 PRESENTACIÓN Estos cursos está diseñado para entrenar a los alumnos en el uso de los algoritmos para luego implementar en los lenguajes de programación más actuales, de esta manera, el estudiante estará preparado para entender y resolver una amplia gama de problemas del mundo real.
  • 3. Ingeniería de Sistemas E Informática Algoritmica II 3 requisitos Objetivo de los cursos El uso correcto de las técnicas Algoritmicas y Disponer de una herramienta y técnicas de programación. Con los cuales podrá afrontar con éxito los problemas reales que se le presentaran en un ambiente de investigación o laboral. Al final de los cursos el alumno podrá ejercer y desempeñarse como programador de computadoras. Manejo de técnicas Algoritmicas Manejo de al menos dos lenguaje de programación Manejo y un entendimiento Lógico de: Sistemas Operativos, hardware PC,Compilador Manejo de Proyectos
  • 4. Ingeniería de Sistemas E Informática Algoritmica II 4 Abstraction Problem fundamental Problema Modelo Interfa Operaciones estructura de datos
  • 5. Ingeniería de Sistemas E Informática Algoritmica II 5 Sistema Computacional “El modelado captura las partes esenciales del sistema” Abstracción - Modelado Visual Mundo Real Interface de Usuar (Visual Basic, Java, ..) Lógica del Negocio (C++, Java, ..)
  • 6. Ingeniería de Sistemas E Informática Algoritmica II 6 Algoritmo  Conjunto de reglas para resolver un problema. Su ejecución requiere unos recursos. ALGORITMO 0 ó más entradas 1 ó más salidas Memoria E/S Comunicaciones 
  • 7. Ingeniería de Sistemas E Informática Algoritmica II 7 REQUISITOS Es recomendable que el alumno este familiarizado con el manejo de un computadora y tener sólidos conocimientos en matemáticas. Debe tener amplios conocimientos y criterios que le permita comprender con rapidez sistemas reales para poder programar comprender en sus diferentes contextos. Manejo adecuado del álgebra de boole y manejo de sistemas de numeración en base 2. Además debe comprender lógicamente como trabaja •hardware de computadora básico •Manejo de sistema operativo •Manejo de un compilador
  • 8. Ingeniería de Sistemas E Informática Algoritmica II 8 Lógica de un Computador Entrada Salida ORDENADOR UNIDAD CENTRAL DE PROCESO UNIDAD DE CONTROL UNIDAD ARITMÉTICO LÓGICA MEMORIA PRINCIPAL MEMORIA MASIVA Instrucciones Datos Datos e Instrucciones
  • 9. Ingeniería de Sistemas E Informática Algoritmica II 9 Que es unComputador?  Un computador es una maquina de entradas y salidas  Entiende términos de tipo – 101011110001010001000101111010010101010  En cambio nosotros – “Sumar gastos de hoy a gastos semanales”
  • 10. Ingeniería de Sistemas E Informática Algoritmica II 10 ModeloBásico deun Computador Pentium Atlhon Cyrix …. Almacenami ento Secundario Procesador Central Salida Ram Memoria Principal Entrada Disc o Dur o
  • 11. Ingeniería de Sistemas E Informática Algoritmica II 11 Users System software Programa Hardware Sistemas Operativos uso y comprencion logica Systema Operativo Windows 98 windows 2000 DOS LINUX UNIX UNIX BSD
  • 12. Ingeniería de Sistemas E Informática Algoritmica II 12 LENGUAJE DE PROGRAMACION •Los Algoritmos encontradas en el diseño se tendrá que implementar en un lenguaje de programación ya sea C++,JAVA, Object Pascal etc... •Aprender un lenguaje de programación es como aprender un idioma . Se debe practicar constantemente. •Un Lenguaje de Programación es el intermediario entre el computador y el programador.
  • 13. Ingeniería de Sistemas E Informática Algoritmica II 13 Algoritmos vs. Programa  Un algoritmo es una secuencia de pasos finitos, no ambiguos necesarios para resolver un problema.  La implementación de un algoritmo que puede correr en un computador es llamado programa  Sistemas Operativos, Browser, juegos son ejemplos de programas.
  • 14. Ingeniería de Sistemas E Informática Algoritmica II 14 Queesprogramar?  Mecanismo artificial necesario para decirle al computador qué hacer.  La programación no requiere talento inherente  Pre-requisitos: – Atención a detalle: los detalles cuentan en programación. No se puede ser vago. – Manejo de Estupidez: ellos hacen exactamente lo que les dices, ni más ni menos. Depende del tipo de LP el nivel de especificación. – Buena Memoria: sintaxis del lenguaje, conjunto de funciones prescritas disponibles para ser llamadas, parámetros a ser aceptados, las variables y funciones definidas, y la experiencia del pasado para ser aplicada cuando se reconocen los síntomas. – Habilidad de pensar abstractamente: Sólo si es posible pensar en pequeñas piezas aisladas será posible trabajar con un gran programa.
  • 15. Ingeniería de Sistemas E Informática Algoritmica II 15 Code Size 400,000 Solaris 7 17 million Netscape 40 million Space Station 10 million Space Shuttle 7 million Boeing 777 35 million NT5 Under 5 million Windows 95 1.5 million Linux Lines of Code Program/Application
  • 16. Ingeniería de Sistemas E Informática Algoritmica II 16 Resolución de un Problema Start w ith problem statement Analyze problem& develop algorithm Write source code Run & test program Is there more problemsolving to be done? End y es no Use program Respuesta = ‘2’ Problema a Resolver Ordenamie ntode las Ideas Creación del Algoritmo Codificació n Compilació n Ejecución y obtención de Análisis Test Correccion es Fin
  • 17. Ingeniería de Sistemas E Informática Algoritmica II 17  Las actividades del aprendizaje se encadenan en una mini-cascada con un alcance limitado por los objetivos de la iteración al aprender. Ciclo del proceso de aprendizaje en la programacion es Iterativo e Incremental Análisis Diseño Codific. Pruebas e Integración n veces
  • 18. Ingeniería de Sistemas E Informática Algoritmica II 18 Curva de aprendizaje Incomodidad tiempo El aprendizaje incluye tres aspectos: -Manejo de Algoritmos en forma eficiente - Metodología de programación. - Conocimiento de un lenguaje Programación y - Experiencia
  • 19. Ingeniería de Sistemas E Informática Algoritmica II 19 MECANISMODE ENSEÑANZA-APRENDIZAJE Cada lenguaje se estudiará mediante la realización de prácticas de laboratorio. En estas prácticas el alumno aprenderá a utilizar el ambiente operativo de los lenguajes y revisará código ejemplar. El curso incluye la resolución de ejercicios del texto que no involucran la utilización de la computadora y los conceptos que se explicaran y definirán en la teoria. EVALUACIÓN Se recomienda la realización de un examen por unidad. Es conveniente la elaboración de al menos un proyecto final en alguno de los lenguajes estudiados. La calificación consistirá de lo siguiente. Exámenes 40% Tareas 20% Laboratorio 30% Proyecto 10%
  • 20. Ingeniería de Sistemas E Informática Algoritmica II 20 Uso del Internet Para agilizar y traspasarlas fronteras del aprendizaje El mundo se tornó complejo y difícil… La Internet – “Siempre encendida” – No tiene dueño – Múltiples aplicaciones – La WWW – El Doctor WEB Internet
  • 21. Ingeniería de Sistemas E Informática Algoritmica II 21 Resolución de problemas
  • 22. Ingeniería de Sistemas E Informática Algoritmica II 22 Fases en la solución de un problema Problema Análisis Especificación Diseño Algoritmo Programación Programa Prueba
  • 23. Ingeniería de Sistemas E Informática Algoritmica II 23 Diseño  Esta etapa consiste en el diseño de la solución al problema planteado.  Esta solución se desarrolla en función de un algoritmo. El algoritmo es un conjunto finito de pasos, en secuencia, que indican como se resuelve un determinado problema.
  • 24. Ingeniería de Sistemas E Informática Algoritmica II 24 Diseño  Un algoritmo es una fórmula, un conjunto de pasos para resolver un problema.  Los algoritmos se pueden expresar en cualquier lenguaje, desde lenguajes naturales como Español hasta lenguajes de programación como Java, pasando por los Diagramas de Flujo.
  • 25.  Debe ser finito.  Debe ser definido (sin ambigüedades)  Debe ser efectivo y eficiente. Características de un Algoritmo
  • 26. Ingeniería de Sistemas E Informática Algoritmica II 26 1.1. Definición y propiedades.  Algoritmo: Conjunto de reglas para resolver un problema.  Propiedades – Definibilidad: El conjunto debe estar bien definido, sin dejar dudas en su interpretación. – Finitud: Debe tener un número finito de pasos que se ejecuten en un tiempo finito. ALGORITMO 0 ó más entradas 1 ó más salidas
  • 27. Ingeniería de Sistemas E Informática Algoritmica II 27 1.1.Definición y propiedades.  Algoritmos deterministas: Para los mismos datos de entrada se producen los mismos datos de salida.  Algoritmos no deterministas: Para los mismos datos de entrada pueden producirse diferentes de salida.  ALGORÍTMICA: Estudia técnicas para construir algoritmos eficientes y técnicas para medir la eficacia de los algoritmos.  Objetivo: Dado un problema concreto encontrar la mejor forma de resolverlo.
  • 28. Ingeniería de Sistemas E Informática Algoritmica II 28 1.1.Definición y propiedades.  Proceso clásico de desarrollo de programas. – Especificación de requisitos del problema. – Análisis del problema. – Diseño de la solución. – Implementación del diseño. – Pruebas.  Refinamiento por pasos sucesivos. – Escribir la estructura de la solución en pseudocódigo, de manera muy genérica. – Especificar los pasos de forma cada vez más detallada, y precisa. – Repetimos el refinamiento hasta llegar a una implementación.
  • 29. Ingeniería de Sistemas E Informática Algoritmica II 29 1.1.Definición y propiedades.  Diseño mediante abstracciones. – Identificar los subproblemas. – Especificación abstracta de cada uno de ellos. – Implementar cada abstracción. – Verificación del programa.  Proceso de resolución propuesto por Aho. Modelo matemático Algoritmo informal Tipos de datos abstractos Programa en pseudolenguaje Estructuras de datos Programa en Pascal
  • 30. Ingeniería de Sistemas E Informática Algoritmica II 30 Resolución de un problema Análisis del problema Diseño del algoritmo Programación del algoritmo •definición del problema •especificaciones de entrada •especificaciones de salida •diseño modular o descendente •refinamiento por pasos •codificación del programa •ejecución del programa •comprobación
  • 31. El Algoritmo , resultado de la fase de Diseño, pasa a la fase de Programación para ser traducido a un lenguaje de programación. Class Programa { ........... Public static void main() { .... } } En general es una tarea totalmente mecánica. Diseño
  • 32. Ingeniería de Sistemas E Informática Algoritmica II 32 ¿Cómo generar un Algoritmo? Los pasos que se deben seguir para la obtención de un algoritmo a partir del problema en estudio son los siguientes: 1. Determinación del Objetivo del problema. 2. Estipulación escrita del problema 3. Identificación de los datos de entrada y salida. 4. Determinación del proceso y de los datos integrantes del algoritmo. 5. Identificación de las variables interna. 6. Dividir el proceso en acciones atómicas 7. Determinación de los cursos de acción 8. Determinación de la secuencialidad de las acciones en cada uno de los cursos de acción. 9. Incorporación de estructuras de control para la unificación de los cursos de acción. 10. Generación del algoritmo
  • 33. Ingeniería de Sistemas E Informática Algoritmica II 33 Algoritmos vs. Programa  Un algoritmo es una secuencia de pasos finitos, no ambiguos y finitos necesarios para resolver un problema.  La implementación de un algoritmo que puede correr en un computador es llamado programa  Sistemas Operativos, Browser, juegos son ejemplos de programas.
  • 34. Ingeniería de Sistemas E Informática Algoritmica II 34 1.- Funcionamiento del programa 2.- Claridad - indentado, sangrías - comentarios (al usuario y al corrector) 3.- Estilo de programación - buen y correcto uso de variables - algoritmos usados - uso de funciones y procedimientos Partes importantes en la realización de un programa
  • 35. Ingeniería de Sistemas E Informática Algoritmica II 35 Desarrollo de Algoritmos
  • 36. Ingeniería de Sistemas E Informática Algoritmica II 36  Es un lenguaje bastante coloquial en español ó inglés.  Consta de un conjunto de frases con restricciones que pueden utilizarse en la especificación de programas.  Su objetivo es un balance razonable entre la precisión formal de un lenguaje de programación y la informalidad y legibilidad del lenguaje natural. Pseudocódigo Desarrollo de Algoritmos
  • 37. Ingeniería de Sistemas E Informática Algoritmica II 37 Los verbos a utilizar para describir los pasos a seguir en la solución de un problema son: • CALCULAR • OBTENER • LEER • MOSTRAR • ESCRIBIR Pseudocódigo
  • 38. Ingeniería de Sistemas E Informática Algoritmica II 38 Veamos un ejemplo.. MOSTRAR “Hola” ESCRIBIR “Hola” Pseudocódigo
  • 39. Ingeniería de Sistemas E Informática Algoritmica II 39 Otro ejemplo.. CALCULAR X  A + B 2500 Para lograr esto debemos primero conocer los elementos que componen un programa. Pseudocódigo
  • 40. Ingeniería de Sistemas E Informática Algoritmica II 40 •Son elementos de un programa todos aquellos manipulados por instrucciones. •Mediante ellos podemos hacer almacenamient de datos obtener resultados de las distintas operaciones necesarias para la solución del problema. Tenemos tres tipos de elementos de programa Constantes Variables Expresiones Elementos de un programa
  • 41. Ingeniería de Sistemas E Informática Algoritmica II 41 Constantes Están almacenadas en la memoria del computador y su valor NO cambia a lo largo del programa. Poseen tres atributos: Nombre, Tipo y Valor. Pi Nombre Elementos de un programa 3.14 Valor Tipo (Numérico)
  • 42. Ingeniería de Sistemas E Informática Algoritmica II 42 Variables edad Nombre nombre Elementos de un programa Están almacenadas en la memoria del computador y su valor puede cambiar a lo largo del programa. Poseen tres atributos: Nombre, Tipo y Valor. (Numérico) Tipo (Alfanumérico) Valo r 21 “Juan Perez
  • 43. Ingeniería de Sistemas E Informática Algoritmica II 43 Variables Las variables pueden ser de dos tipos :  Variables sencillas: edad nombre 2.Variables subindicadas o con subíndices.
  • 44. Ingeniería de Sistemas E Informática Algoritmica II 44 Variables subindicadas o con subíndices Las variables con subíndice sirven para representar un tipo de dato denominado arreglos. Arreglos: Conjunto de valores agrupados todos bajo un solo identificador. Este conjunto de valores deben ser todos del mismo tipo
  • 45. Ingeniería de Sistemas E Informática Algoritmica II 45 Tipos de arreglos: De una dimensión Variables subindicadas o con subíndices 0 2 3 4 5 6 1 Posición Para determinar en que posición del arreglo se encuentra un determinado valor se utiliza un índice.
  • 46. Ingeniería de Sistemas E Informática Algoritmica II 46 Arreglos de una dimensión María Luis Alejandro Karla nombres Para hacer referencia a un elemento del arreglo se escribe nombres (1) Nombre de la Posición dentro del arreglo 0 1 2 3
  • 47. Ingeniería de Sistemas E Informática Algoritmica II 47 Arreglos de dos dimensiones Petare venezolano Luis Los Chorros venezolano Carlos Los Naranjos venezolana María En un arreglo de dos dimensiones o matriz, para ubicar la posición de un elemento se requiere de dos subindices: uno para indicar la fila y otro para indicar la columna. datos datos (0,0) = Maria 0 1 2 1 0 2
  • 48. Ingeniería de Sistemas E Informática Algoritmica II 48 Para cambiar el valor a una variable decimos: ASIGNAR edad 15 Elementos de un programa Variables Donde el símbolo indica que se dará el valor 15 a la variable edad. ASIGNAR datos(0,0) Loren
  • 49. Ingeniería de Sistemas E Informática Algoritmica II 49 Elementos de un programa Los nombres de constantes y /o variables deben seguir las siguientes reglas: Usar nombres significativos. La primera letra del nombre deberá ser minúscula. •Edad •Cada nombre estará compuesto por dos ó mas sílabas. Pueden usarse varias palabras para el nombre. hora horaLlegada
  • 50. Ingeniería de Sistemas E Informática Algoritmica II 50 Expresiones Elementos de un programa Son conjuntos de variables y/o constantes unidas o relacionadas por operadores. Hay tres tipos de expresiones: - Numéricas - Alfanuméricas - Lógicas
  • 51. Ingeniería de Sistemas E Informática Algoritmica II 51 Expresiones Numéricas Las que producen resultados de tipo numérico. X  Y + 5 – 7 + C Para su construcción se utilizan los Operadores aritméticos. ( ) Paréntesis ^ Potencia * Multiplicaci Elementos de un programa
  • 52. Ingeniería de Sistemas E Informática Algoritmica II 52 Al evaluar expresiones numéricas debemos tomar en cuenta el orden de precedencia de las operaciones: 1. Paréntesis 2. Potencias 3. Multiplicación y División 4. Suma y Resta Expresiones Numéricas Elementos de un programa
  • 53. Ingeniería de Sistemas E Informática Algoritmica II 53 Calcular suma  var1 + var2 + var3 Supongamos tres variables con sus valores. 8 var 2 5 var1 3 var3 ¿Cómo expresaríamos el darle a una variable suma el valor resultado de sumar los tres valores? Expresiones Numéricas Elementos de un programa 16 suma
  • 54. Ingeniería de Sistemas E Informática Algoritmica II 54 Calcular suma  (var1 + var2) * var3 + ( var 2 / 2 ) 43 suma Expresiones Numéricas Elementos de un programa Otros ejemplos: 8 var 2 5 var1 3 var3
  • 55. Ingeniería de Sistemas E Informática Algoritmica II 55 Calcular suma  var1 + ( var2 * var3) + ( var 2 / 2 ) 33 suma Expresiones Numéricas Elementos de un programa Otros ejemplos: 8 var 2 5 var1 3 var3
  • 56. Ingeniería de Sistemas E Informática Algoritmica II 56 Elementos de un programa Expresiones Numéricas Otros ejemplos: 120.000,0 0 1400000, 00 98.000,00 178.999,0 0 sueldos Calcular sueldoTotal  sueldos( 0 ) + sueldos( 1) + sueldos (2) + sueldos (3) 1.796.999,00
  • 57. Ingeniería de Sistemas E Informática Algoritmica II 57 Las que producen resultados de tipo alfanumérico. Ejemplo: (Alfanumérico) “Pedro” nombre (Alfanumérico) “Perez” apellido (Alfanumérico) ???? nombreCompleto Expresiones Alfanuméricas Elementos de un programa
  • 58. Ingeniería de Sistemas E Informática Algoritmica II 58 Son las que producen resultados de tipo lógico, es decir, Verdadero o Falso. (True – False) (A > 0) (B < 5) (C = D) (F != E) Expresiones Lógicas Elementos de un programa
  • 59. Ingeniería de Sistemas E Informática Algoritmica II 59 Para su construcción se utilizan los Operadores Relacionales. = Igual < Menor que <= Menor o igual que > Mayor que >= Mayor o igual que != Distinto a Expresiones Lógicas Elementos de un programa
  • 60. Ingeniería de Sistemas E Informática Algoritmica II 60 ( 5 > 2 )  Verdadero ( True ) ( 6 < 2 )  Falso ( False ) Expresiones Lógicas Elementos de un programa Por ejemplo
  • 61. Ingeniería de Sistemas E Informática Algoritmica II 61 ( var2 > var1 )  Verdadero ( var2 < var3 )  Supongamos tres variables con sus valores. Veamos el resultado de evaluar las siguientes expresiones lógicas Expresiones Lógicas Elementos de un programa 8 var 2 5 var1 3 var3
  • 62. Ingeniería de Sistemas E Informática Algoritmica II 62 Podemos combinar varias expresiones lógicas utilizando los operadores booleanos. Por ejemplo: (var1 > 0) AND (var2 < 5) AND Conjunció n OR Disjunció n Expresiones Lógicas Elementos de un programa
  • 63. Ingeniería de Sistemas E Informática Algoritmica II 63 ( 5 > 2) AND ( 6 < 2) Falso ( 5 > 2) AND ( 6 > 2) Cierto Elementos de un programa Ejempl os Expresiones Lógicas
  • 64. Ingeniería de Sistemas E Informática Algoritmica II 64 (( var2 > var1 ) AND (var2 > var3)) Supongamos tres variables con sus valores. Veamos el resultado de evaluar las siguientes expresiones lógicas Expresiones Lógicas Elementos de un programa 8 var 2 5 var1 3 var3 Verdadero Falso Verdadero (( var2 < var3 ) AND (var1 < var2)) (( var1 = var3 ) OR (var1
  • 65. Ingeniería de Sistemas E Informática Algoritmica II 65  Es un lenguaje bastante coloquial en español ó inglés.  Consta de un conjunto de frases con restricciones que pueden utilizarse en la especificación de programas.  Su objetivo es un balance razonable entre la precisión formal de un lenguaje de programación y la informalidad y legibilidad del lenguaje natural. Pseudocódigo Resumen
  • 66. Ingeniería de Sistemas E Informática Algoritmica II 66 Escribir un algoritmo que permita calcular el área de un triángulo 1.Inicio CalculoArea 2.base, altura,area: numérico 3.Leer base, altura 4. Calcular area  (base * altura)/2 6. Terminar CalculoArea Entrada: base, altura : numérico Salida: area: numérico 5. Mostrar (“El area del triangulo es” , area)
  • 67. Ingeniería de Sistemas E Informática Algoritmica II 67 Algoritm 1.Inicio CalculoMonto 2.precio,monto: numérico 3.Leer precio 4.Si (precio > 10.000) entonces Decisión 4.1 Calcular monto  (precio – (precio * 0.06)) 4.2 Calcular monto  (precio – (precio * 0.05)) sino 5. Mostrar (“El monto a pagar es:” , monto) 6. Terminar CalculoMonto Entrada: precio: numérico Salida: monto: numerico
  • 68. Ingeniería de Sistemas E Informática Algoritmica II 68 Escribir un programa que lea tres números y los imprima. Algoritmo 1. Inicio TresNúmeros num1,num2,num3: numérico 2. Leer num1,num2,num3 3. Mostrar (“Los números son: “ num1,num2,num3) 4. Terminar TresNúmeros Entrada:num1, num2, num3: numérico Salida: num1, num2, num3: numérico
  • 69. Ingeniería de Sistemas E Informática Algoritmica II 69 Escribir un programa que lea tres números, los sume e imprima el resultado de la suma. Entrada:num1, num2, num3: numérico Salida: suma: numérico Ejemplo Algoritmo 1. Inicio TresNumeros 2. num1,num2,num3,suma: numérico 3. Leer num1,num2,num3 4. Calcular suma num1+num2+num3 5. Escribir(“La suma es: “ suma) 6. Terminar TresNumeros
  • 70. Ingeniería de Sistemas E Informática Algoritmica II 70 Escribir unprograma queleatres números,lossume y multipliquee imprima el resultadomayor. Entrada: num1, num2, num3: numérico Salida: suma, multi: numérico Ejercicio Algoritmo 1.Inicio TresNumeros 2.num1,num2,num3,suma, multi: numérico 3.Leer num1,num2,num3 4.Calcular suma  num1+num2+num3 5.Calcular multi  num1*num2*num3 6.Si suma > multi entonces 6.1 Escribir (“El resultado mayor es :” suma) Sino 6.2 Escribir (“El resultado mayor es :” multi) 7. Terminar TresNumeros
  • 72. Ingeniería de Sistemas E Informática Algoritmica II 72 Acerca de C  C fue desarrollado por Brian Kernighan y Dennis Ritchie en los laboratorios Bell.  Valores son guardados en Variables  Programas son estructurados por funciones.  Flujo de Control es controlado usando loops, sentencias y llamadas a funciones.  Entrada y Salida son dirigidas a archivos o al terminal.  Datos son almacenados juntos en arreglos o estructuras.  C permite un control mas preciso de entradas y salidas  Programas pequenos mas eficientes  C es un lenguaje amigable  ANSI C es proclamado la versión estándar del lenguaje.
  • 73. Ingeniería de Sistemas E Informática Algoritmica II 73 Historia  1967, Martin Richard crea el lenguaje BCPL  1970, Ken Thompson crea el lenguaje B. – Transportable. – Lenguaje evolucionado e independiente de la máquina.  1972, Dennis Ritchie y Brian Kernighan en los Laboratorios Bell de AT&T crea el lenguaje C modicando el lenguaje B. Reescribe Unix en C. – Se diseñan tipos y estructuras de datos. – Incluye punteros y funciones. – Riqueza de operadores.  1983, el instituto de estándares americano (ANSI) crea un estándar que definiera el lenguaje C.  1990, el estándar es adoptado.
  • 74. Ingeniería de Sistemas E Informática Algoritmica II 74 UNIX  Sistema UNIX fue escrito en C.  C fue inventado específicamente para implementar UNIX.  Todos los comandos de UNIX mas todas las facilidades tales como “revision de password”, “colas de impresión”, o controladores de devices son escritos en C.  Poderosos sistemas pueden ser creados al escribir en C y utilizando las librerías del sistema UNIX.
  • 75. Ingeniería de Sistemas E Informática Algoritmica II 75 Usando C y UNIX  Conocimiento previo.  Ciclo: – Escribir el programa en un archivo – Compilar el programa – Ejecutar el programa  Durante el desarrollo del programa, el programador puede repetir el ciclo muchas veces, refinando, testeando, y haciendo debugging hasta alcanzar la refinación deseada.
  • 76. Ingeniería de Sistemas E Informática Algoritmica II 76 Escribir, Compilar, ejecutar el Programa  UNIX espera que su programa sea guardado en un archivo cuyo nombre finaliza en “.c”  Para editar, utilizar un editor como “jed”, “emacs”, o “vi” – >> jed prueba.c  Para Compilar se utiliza un compilador de la forma: – >>cc prueba.c –o prueba  Para ejecutar bajo UNIX solo se debe escribir: – >>prueba o >>./prueba Compilador de UNIX
  • 77. Ingeniería de Sistemas E Informática Algoritmica II 77 Traductores  Traducen el lenguaje de alto nivel a lenguaje de máquina.  Se refieren a la forma en que se ejecuta el programa – Interpretes: lee el código de un programa línea a línea realizando las instrucciones. – Compiladores: lee el programa entero y lo convierte en código objeto que puede ser ejecutado por la maquina directamente.
  • 78. Ingeniería de Sistemas E Informática Algoritmica II 78 Ejemplo /* Programa Hola Mundo*/ #include <stdio.h> int main( ) { printf(“Hola Mundo!!!"); return ( ) ; } pincoya>>gcc -Wall hello.c pincoya>> ./a.out a.out Compilar Compila dor(gcc) Progra ma hola.o Códig o Objet Enlace Enlaza dor hola.c Ejecutable
  • 79. Ingeniería de Sistemas E Informática Algoritmica II 79 Programa ejecutable  Los siguientes pasos hay que seguir para obtener un programa ejecutable: Programa Fuente Compilado rPrograma Objeto Enlace Librerías Programa Ejecutabl e
  • 80. Ingeniería de Sistemas E Informática Algoritmica II 80 Compiladores C  Para el sistema operativo Linux: – lcc – gcc  Para el sistema operativo Windows: – Turbo C/C++ – Borland C/C++ – Visual C++  Editores de texto para Linux: – jed, emacs.
  • 81. Ingeniería de Sistemas E Informática Algoritmica II 81 Declaraciones globales f1() { variables locales secuencia de sentencias } . .. fN() { variables locales secuencia de sentencias } main(){ variables locales secuencia de sentencias } Estructura de un programa
  • 82. Ingeniería de Sistemas E Informática Algoritmica II 82 Estructura de un programa  Todos los programas en C consisten en una o más funciones.  La única función que debe estar absolutamente presente es la denominada main() , siendo la primera función que es llamada cuando comienza la ejecución del programa.
  • 83. Ingeniería de Sistemas E Informática Algoritmica II 83 Estructura de memoria de Turbo C Pila Montón Variable Globales Código del programa
  • 85. Tipos, Operadores y Expresiones. Romina Torres
  • 86. Ingeniería de Sistemas E Informática Algoritmica II 86 Introducción  Variables y Constantes son los objetos de datos básicos manipulados en un programa.  Las declaraciones establecen las variables a ser usadas, su tipo y su valor inicial.  Operadores especifican que se hace con las variables.  Expresiones combinan variables y constantes para producir nuevos resultados.
  • 87. Ingeniería de Sistemas E Informática Algoritmica II 87 Nombres de Variables  Nombres son hechos de letras y dígitos.  El símbolo underscore “_” cuenta como letra.  Letras mayúsculas y minúsculas son diferentes.  Tradicionalmente se utiliza letras minúsculas para nombres de variables y letras mayúsculas para nombres de constantes.  Nombres de palabras reservadas no pueden ser utilizadas: Palabras Reservadas
  • 88. Ingeniería de Sistemas E Informática Algoritmica II 89 Tipos de Variables  En C una variable debe ser declarada antes de ser usada.  Pueden ser declaradas al comienzo de cualquier bloque de código, pero la mayoría son encontradas al comienzo de la función.  Una declaración comienza con un tipo, seguido por el nombre de una o mas variables. – int num=4, cel[20];/*Ver Tipos*/ Tipo Nombre Asignación Comentari o
  • 89. Ingeniería de Sistemas E Informática Algoritmica II 91 Constantes  Son valores fijos que no pueden ser alterados por el programa. Pueden ser de cualquier tipo de datos.  Una constante en C es solo la versión escrita de un numero.  Ejemplo: 4, 3e5  Un carácter constante usualmente es solo un carácter encerrado entre cremillas ‘a’  Valor de un carácter constante es el valor numérico en el conjunto de caracteres de la maquina.
  • 90. Ingeniería de Sistemas E Informática Algoritmica II 92 Constantes  Expresión Constante es una expresión que involucra solo constantes  Son evaluadas en tiempo de compilación – Ejemplo: #define MAX 1000  String constante es una secuencia de cero o mas caracteres encerrado entre cremillas tal como “Lenguaje de Programacion en C”  Las cremillas son delimitadores.  El carácter nulo ‘0’ es automaticamente colocado al final de tal string
  • 91. Ingeniería de Sistemas E Informática Algoritmica II 93 Declaración de constantes  Son valores fijos que no pueden ser alterados por el programa. Pueden ser de cualquier tipo de datos. – Ejemplo ‘a’ ‘n’ ‘9’ 1 123 35000 123.23  Para declarar constantes se puede utilizar la directiva #define. – Ejemplo #define Maximo 1000
  • 92. Ingeniería de Sistemas E Informática Algoritmica II 94 Tipo lista_de_variable s; Declaración de variables  Todas las variables han de ser declaradas antes de ser usadas y pueden cambiar su valor durante la ejecución del programa.  Forma: – tipo: debe ser un tipo de datos válido de C- – lista_de_variables : puede consistir en uno o más identificadores separados por comas.
  • 93. Ingeniería de Sistemas E Informática Algoritmica II 95 Declaraciones  Todas las variables deben ser declaradas antes de ser usadas.  Una declaración especifica un tipo y lista una o mas variables de ese tipo. int a,b,c; int a; int b; int c;
  • 94. Ingeniería de Sistemas E Informática Algoritmica II 96 Variables Locales vs. Globales  Variables locales son declaradas dentro del cuerpo de una función y solo pueden ser usadas dentro de esa función.  Estará disponible para otras funciones solo si al ser llamadas desde la función actual, son pasados los valores de las variables.  Una variable global estará disponible para todas las funciones.  Practicas Modernas de Programación recomiendan no abusar del uso de estas variables.
  • 95. Ingeniería de Sistemas E Informática Algoritmica II 97 Nombre_de_variable = constante; Inicialización de variables  La asignación se realiza usando el signo ‘=‘, donde la constante del lado derecho se asigna al lado izquierdo.
  • 96. Ingeniería de Sistemas E Informática Algoritmica II 98 Comentarios  Los comentarios en C va entre los símbolos /* y */.  Pueden ir ubicados en cualquier parte del programa. – Ejemplo: … /* Este es un comentario */ ...
  • 97. Ingeniería de Sistemas E Informática Algoritmica II 99 Variables Externas  Cuando se utiliza desde una función en un archivo A una variable declarada en un archivo B, debe declararse en la función del archivo A como variable externa. Archivo A Archivo B f0(){ extern int a; ...} f1(){…} int main(){…} int a; g1(){ a=4; ... } g2(){ … } int main(){…}
  • 98. Ingeniería de Sistemas E Informática Algoritmica II 100 Variables Estáticas  Son declaradas como Variables locales, pero su declaración es precedida por la palabra static  Puede ser accesada solo desde la función en que fue declarada.  Inicializada solo una vez. No es destruida a la salida de la función, sino su valor es preservado, y estará disponible en la próxima llamada a la función int f1(){… static int a; …} int main(){… f1(); …}
  • 100. Ingeniería de Sistemas E Informática Algoritmica II 102 Operaciones y Expresiones  Una de las Potencias de C es su amplio rango de operadores necesarios.  Un operador es una función que es aplicada a valores para dar un resultado.  Existen operadores aritméticos, comparación de valores, combinación de estados lógicos y manipulación de dígitos individuales unitarios.  Los operadores y valores son combinados para formar expresiones.  Sentencia de Asignación: – Una expresión es evaluada y el resultado es guardado en una variable  y= a*x+b
  • 101. Ingeniería de Sistemas E Informática Algoritmica II 103 Operadores Aritméticos Acción Operador Resto de división entera % Incremento ++ Decremento -- División / Multiplicación * Substracción - Adición +
  • 102. Ingeniería de Sistemas E Informática Algoritmica II 104 Operadores Relacionales Acción Operador Igual == No igual != Menor que o igual <= Menor que < Mayor que o igual >= Mayor que >
  • 103. Ingeniería de Sistemas E Informática Algoritmica II 105 Operadores Lógicos Acción Operador Y && NO ! O || Y && 0 1 0 0 1 0 1 1 1 1 1 1 0 1 0 1 0 0 0 0 !p p||q p&&q q p Tabla de Verdad
  • 104. Ingeniería de Sistemas E Informática Algoritmica II 106 Valores booleanos?  Los valores lógicos o booleanos no tienen un tipo especial.  Se puede utilizar cualquier tipo integral que tenga un valor 0 representando falso y cualquier otro valor representando el verdadero.
  • 105. Ingeniería de Sistemas E Informática Algoritmica II 107 Precedencias  Si existen más de un operador perteneciente a un mismo nivel, la prioridad va de izquierda a derecha. , =, +=, -=, *=, /= || && ==, != <, <=, >, >= +, - *, /, % !, ++, --, -, (tipo) () (x>=10 && x<20) || x<5 If(!NULL) printf(“…”);
  • 106. Ingeniería de Sistemas E Informática Algoritmica II 108 Conversión de tipos  Cuando en una expresión se mezclan constantes y variables de un mismo tipo y variables de distinto tipos, se convierten a un tipo único.  El compilador C convierte todos los operandos al tipo del mayor operando.
  • 107. Ingeniería de Sistemas E Informática Algoritmica II 109 Conversión de Tipos  Se pueden mezclar los tipos de valores en expresiones aritméticas  Valores pasados a funciones como argumentos debe ser del tipo correcto  Si los tamaños son diferentes: – El resultante adoptara el tamaño mayor  No hay problema en asignar un valor a una variable de diferente tamaño.  Excepciones: – La variable es demasiado pequeña para sostener el valor. CORRUPTO – Si la variable es tipo entera y se le asigna un valor real, el valor es redondeado.
  • 108. Ingeniería de Sistemas E Informática Algoritmica II 110 Conversión de tipos  Regla: – Cualquier char y long int es convertido a int. Cualquier float es convertido a double. – Para todos los pares de operandos, si uno de los operandos es long double, el otro operando se convierte a long double. – Si no, si un operando es double, entonces el otro se convierte a double. – Si no, si un operando es long, entonces el otro se convierte a long. – Si no, si un operando es unsigned, entonces el otro se convierte a unsigned.
  • 109. Ingeniería de Sistemas E Informática Algoritmica II 111 Conversión de tipos, Ejemplo char ch; int i; float f; double d; result= ( ch / i) + (f * d) - ( f + i ); int double double int double double double
  • 110. Ingeniería de Sistemas E Informática Algoritmica II 112  Sirven para forzar que una variable sea de un cierto tipo.  Forma general:  Ejemplo: (tipo)expresi ón int i; float x; … x=(float) i/1; Moldes
  • 111. Ingeniería de Sistemas E Informática Algoritmica II 113 Shorthand i=i%10 i%=10 i=i/10 i/=10 i=i*10 i*=10 i=i+10 i+=10 i=i-1 i-- o --i i=i+1 i++ o ++i Equivalente Shorthand