Вы находитесь на странице: 1из 37

IntroduccinalaProgramacin

11O
HumbertoCervantesMaceda

Informacindelprofesor
HumbertoCervantesMaceda
T138
www.humbertocervantes.net/cursos

Acercadeustedes
Nombre
Carrera
Quexperienciatienesrespectoaprogramacin?
Quteinteresaenrelacinalaprogramacin?

Sucarrera

Usted est aqui

Licenciaturaencomputacin
Cienciasdelacomputacin
IngenieradeSoftware
Quson?
Qudiferenciashayentreellas?

Programar
Quesprogramar?

Programar
Quesprogramar?
Elprocesodedisear,escribir,probar,depurary
mantenerelcdigofuentedelosprogramasde
cmputo.Dichocdigofuenteestescritoen
algnlenguajedeprogramacin.Elpropsitode
programarescrearunprogramaqueexhibaalgn
comportamientodeseado.Elprocesodeescribir
cdigofuenterequiereconocimientoendistintos
temasincluyendoeldominioaplicativo,
algoritmosespecializadosylgica.(Wikipedia)

Recordando:Computadora

ArquitecturadeVon Newmann
Representaunmodelo
paradisearcomputadoras
digitales(1945)queesla
basedelascomputadoras
queseusanhoyenda
5Partesprincipales
ALU
Unidaddecontrol
Memoria
Dispositivosdeentraday
salida
Busdedatos

ArquitecturadeVon Newmann
DispositivosdeEntrada
ySalida
Permitenrealizar
comunicacinhaciael
exterior

Recordando:Computadora

Ratn

Procesamiento
Pantalla

Teclado
Informacin

Datos
CD
Unidad Central

Impresora

Escner
Red

Bocinas

ArquitecturadeVon Newmann
ALU
Arithmetic Logic Unit
Realizaoperaciones
aritmticas(suma,resta,
multiplicacin)y
operacioneslgicas(si,
y,o,no)

ArquitecturadeVon Newmann
UnidaddeControl
Obtieneinstruccionesen
lamemoriaprincipal,las
interpretaylasejecuta

ArquitecturadeVon Newmann
Memoria
Almacenamientode
datos

UnidadCentral
Memoria

Microprocesador
Disco duro

Dentrodelaunidadcentralseencuentran
Microprocesador
Almacenamientovoltil(Memoria)
Almacenamientonovoltil(Discosduros)

ArquitecturadeVon Newmann
Busdedatos
Permitequese
comuniquenlosdatos
entrelasdistintaspartes

Programa
Conjuntodeinstruccionesalmacenadasenla
memoriaquevanadirigiralprocesadorpara
realizarunatareaespecifica
Enlamemoria,unprogramasevecomoun
conjuntodeunosyceros

100100011101101010010011001
Losunosycerossonellenguajedelamquina
Elnicoqueentiendeelprocesador
Ejem.0110100110101011=SUMAM,N,P

Algoritmo
Demanerainformal,unalgoritmoescualquierprocedimiento
computacionalbiendefinidoquetomaunoomsvalores
comoentradayproduceunoomsvalorescomosalida.Un
algoritmoesentoncesunasecuenciadepasosque
transformanentradasensalidas
Ejemplo:Ordenamientodenmeros
Unalgoritmoescorrectosiparacadaentradadada,se
detieneyproducelasalidacorrecta.Elalgoritmoresuelve
entonceselproblemacomputacional.

Aplicacindealgoritmos
Rutear datosenlared
Decodificargenomas
Realizartransaccionesseguras
Corregirrumbodeunavin
Controlarprocesosindustriales

Programayalgoritmo
Culesladiferencia?

Programayalgoritmo
Unprogramaeslaimplementacindeunalgoritmo,
esdecirsurepresentacinenalgnlenguajede
programacin
Unaestructuradedatosesunamanerade
almacenaryorganizardatosconelfindefacilitarsu
accesoymodificacin.Noexisteunasolaestructura
dedatosquefuncionebienparatodoslos
propsitos,porello,esimportanteconocerlas
fortalezasylimitacionesdelasmismas.

Representacindeunalgoritmo
Existendistintas
representacionespara
unalgoritmo
Pseudocdigo
Diagramasdeflujosde
datos

Estructurasdedatos
Unaestructuradedatosesunamanerade
almacenaryorganizardatosconelfinde
facilitarsuaccesoymodificacin.Noexiste
unasolaestructuradedatosquefuncione
bienparatodoslospropsitos,porello,es
importanteconocerlasfortalezasy
limitacionesdelasmismas.

SoftwareytiposdeSoftware
Software
Coleccindeprogramasydatosqueproporcionan
instruccionesaunacomputadorasobrequhacerycmo
hacerlo

DistintostiposdeSoftware
Aplicaciones
Sistemasoperativos
Drivers
Herramientasdeprogramacin
Drivers

Softwareentodoslados

Porquprogramamos?

Porquprogramamos?
Engeneral,serealizanprogramaspara
resolverproblemasonecesidadesdeforma
automticamedianteelusodecomputadoras

problema

1011100011
0110010001
1011100011
1111011111
0110010001
1001000111
1111011111
1011100011
0011101110
1001000111
0110010001
1110110111
1011100011
0011101110
1111011111
1110000111
0110010001
1110110111
1001000111
1111011111
1110000111
0011101110
1001000111
1110110111
0011101110
1110000111
1110110111
1110000111

Hayunproblema
Lascomputadorasyloshumanosnohablamos
elmismoidioma...
10100011101010010010
10011001001000010011
01110001101010011011

Lenguajesdeprogramacin
Parapoderprogramarlascomputadoras,seinventaron
lenguajesdealtonivel,esdecir,entendiblesporlos
humanos
Primeroslenguajes
Fortran (1954)
Cobol(1959)
B(1969)

Lenguajescomuneshoyenda
Pascal(1970)
C(1971)
C++(1983)
Java(1995)
C# (2000)

Ejemplodeprograma
Programaqueescribeholamundo!enlapantallaen
lenguajeC
#include <stdio.h>
void main()
{
printf(Hola, mundo !\n);
}

Unprogramaseescribeenuneditor,yseguardaenun
archivo

Compilador
Loslenguajesdealtonivelnosonentendiblesporla
computadora,esnecesariotraducirlosantesdequepuedan
serejecutados
Latraduccinlarealizaunprogramallamadocompilador
#include
<stdio.h>
main()
{
printf(Hola!\n
);
}

Compilador

1011100011
0110010001
1111011111
1001000111
0011101110
1110110111
1110000111

Unavezcompilado,elprogramayapuedeserejecutadopor
lacomputadora

Depurador
Eldepuradoresunprogramaquepermite
ejecutarpasoapasoelprogramaqueestamos
realizandoconelfindepoderencontrar
problemas

Entornosdedesarrollointegrado
Esunprogramaque
incluyevariosotros
programaspararealizar
desarrollodesoftware
Editordecdigofuente
Compilador/interprete
Depurador
Builder
Etc

Elprocesodedessarrollo
Elprocesorepresentaunaseriedeetapasquese
siguenparadesarrollarunaaplicacindesoftware
Entrelasetapasprincipalesseencuentran
Entenderqusequierehacer
Proponerydisearunasolucin
Construccindelasolucin
Probarlasolucin
Entregarlasolucinalcliente
Realizarmantenimiento

Unaanaloga
Unprogramapequeo,ascmounacasapequeapueden
serdiseadosyconstruidosporunasolapersona

Deformaunpoco'artesanal'

Unaanaloga
Unproyectocomplejorequieresinembargo
deunprocesodedesarrolloquepermita
coordinarunnumerograndede
programadores

Torre Mayor

Informacindelcurso
www.humbertocervantes.net

Вам также может понравиться