Sunteți pe pagina 1din 14

Introduccin a Computacin (1era Leccin)

23/08/2017

*Por qu C++

Eficiente
Introduce otros lenguajes de programacin

*Software-No tangible

Hardware-Tangible

*Computadores-Hechos principalmente de Silicio (semiconductor), Germanio

Tubos de vaco hasta la aparicin de transistores. Transistores funcionan gracias a la capacidad


de semi-conduccin de transistores (dependiendo de un voltaje suministrado, el transistor deja
de conducir o conduce electricidad).

La parte ms importante del computador es el procesador.

Cmo funciona la transmisin de informacin?

*A travs bits (binary digit). Absolutamente todo se transmite en cadenas binarias, ceros y unos.
Si el transistor conduce 1, sino 0.

*Organizacin de Computador

Unidad de entrada: diskette, cmara, micrfono, teclado, scanner, cd, disco duro externo,
pantalla tctil celular.

Pantallas tctiles-La caracterstica de la corriente elctrica es que fluye hacia la tierra. Debajo de
la pantalla tctil existe una matriz de capacitores; estos envan la corriente elctrica a tierra, si
se toca cierta parte de la matriz hay una variacin de la corriente enviada que es detectada por
el dispositivo ya que el ser humano conduce electricidad.

Unidad de salida: pantalla, proyector, impresora, parlantes.

USB unidad de entrada y salida.

Unidad de memoria: No es el disco duro, puesto que este no es rpido. Memoria RAM
informacin voltil.

Jerarqua de memoria--> Procesador (Memoria Cach) 12 MB. CPU. Rapidez depende de la


cantidad de ncleos.

Memoria Principal RAM, tiene la informacin inmediata que procesa


el procesador. 8 GB

Disco Duro-HD Memoria Secundaria (Conjunto de discos con brazos


lectores). 1TB

Disco de estado slido (memoria de estado slido)- no se borra cuando se apaga. Entre RAM y
HD
28/08/2017

Disco Duro y SSD

SSD mediante electrnica de transistores muy pequeos almacena informacin. Mucho ms


rpido y liviano.

El HD es un disco fsico, ms lento y frgil.

*Tarjeta Madre (Mainboard Motherboard): Donde se encuentran todos los dispositivos de los
que hemos hablado. Adems, se encuentran las unidades de salida

Tecnologa SATA para HD.

Memoria RAM debe colocarse en pares siempre y en el mismo color.

El procesador va en el socket, este asegura al CPU.


Disco Duro
Memoria RAM Procesador

PCI O PCI-
express. Ej:
Tarjeta de video

Conexin HD
Sockets para
memoria RAM Socket para CPU.
Mecanismo de
palanca

No se puede manipular la tarjeta madre porque la esttica del cuerpo puede daarla.

Jerarqua de Datos

Bits, dgitos binarios. 1 0

8 bits=1 byte
Los bits representar informacin. Los bytes se pueden asociar a ciertos caracteres ya
reconocibles por una persona.

A01000001 =8 bits=1 byte

Los bytes que se juntan se llaman campo. Deben tener significado. RBOL

Si junto campos se llaman registro.

Varios registros forman un archivo.

La agrupacin de archivo se denomina base de datos. Pero no siempre un grupo de archivos es


una base de datos. Estudiantes USFQ

Tipos de Lenguaje y Jerarqua

*Lenguajes se agrupan segn su nivel a partir del entendimiento que tiene el ser humano.

Lenguaje de alto nivelentendible para personas, no mquina.

Lenguaje de bajo nivelentendible para mquinas.

Lenguaje de mquina: Nivel Bajo. Solo bits. Es un lenguaje solo de computadora. Definido por
la arquitectura del computador. Ceros y unos.

Cuando una computadora es de 32/64 bits, significa que el procesador agrupa una determinada
cantidad de bits para operar (el procesador es de 32/64 bits). Mientras se trabaje con ms bits
en menos tiempo el rendimiento ser mejor. Programas de 32 bits pueden funcionar en 64 bits
(no necesariamente con mayor rendimiento), pero no viceversa. Generalmente cuando se crea
tecnologa

Lenguaje ensamblador: Nivel Medio. Utiliza instrucciones cortas para realizar operaciones
elementales. Se representa estas operaciones simblicamente. mult $s2, $s3, 3

Un ensamblador pasa el lenguaje ensamblador al de mquina.

Lenguaje de alto nivel: Nivel alto. Escritura de programa con palabras y notacin algebraica.

C=a+b. Compilador convierte este lenguaje en uno de ensamblador o mquina. Compilador de


C++ convierte lenguaje de alto nivel en lenguaje de mquina.

Es posible pasar lenguaje de mquina a lenguaje de alto nivel

Introduccin a C++

C++ es una extensin de C. Permite la programacin orientada a objetos. Cuenta con una librera
estndar.

Consta de 3 cosas:

Lenguaje
Libreras estndar
Ambiente de desarrollo de programas (Equivalente a Word para hacer un ensayo)
DevC++

Tienen 6 fases
Edicin: Escribir programa/cdigo fuente usando un editor. Se guarda en el disco. Extensin te
indica de que tipo es un archivo. .cpp, .cxx, .h

Preprocesamiento: directivas que indican que se debe hacer o cargar.

Compilacin: Pasar lenguaje de alto nivel a lenguaje de mquina.

Enlace: linker enlaza el cdigo compilado con el cdigo de funciones y datos de otras fuentes y
produce un programa ejecutable. .exe

Carga: loader coge el programa del disco y lo pasa a la memoria principal.

Ejecucin: CPU ejecuta las instrucciones del programa. Pueden realizarse varias instrucciones
al mismo tiempo.

cin lo que se ingresa por teclado u otro dispositivo

cout lo que se entrega a pantalla u otro dispositivo

cerr para mostrar mensajes de error

30/08/2017

Sistema Operativo (2da Leccin)

Genera una interfaz para que el usuario trabaje


Sistema de archivos
Ejecucin de programas
SOFTWARE
Facilitar el uso de los computadores
Uso seguro, eficiente y concurrente de las aplicaciones.

Anteriormente, las computadoras mecnicas lean unas tarjetas electrnicas que tenan un
equivalente a un sistema operativo. Los primeros computadores electrnicas posean un chip
que se programaba. Antes estas computadoras posean solo una tarea especfica.

Kernel: Core del sistema operativo. Sin esto no podra funcionar.

Servidorcomputadora ms potente que guarda informacin (Facebook, banca electrnica,


google). Poseen OS: Windows server, Linux RHEL, CentOS.

CelularesAndroid, Windows Phone, IOS.

Windows

Desarrollado por Microsoft a mediados de los 80s.


Pagado.
Control de versiones (correccin errores, mejoras, parches contra nuevos virus).
Ms usado.
Windows 1.0 fue el primero; funcionaba en cualquier mquina.
DOS fue adquirido por Windows y se cre el MS-DOS
La mayora de programas estn creados para Windows
Poder de mercado

Linux
Open source. Las personas y empresas contribuyen a al desarrollo y mantenimiento de
este OS.
Core: Linux kernel
30/08/2017

Introduccin a C++

prompt

Prompt cursor

cd change directory

cd regresar a la carpeta anterior

TAB busca archivos con cualquier extensin con la letra o caracteres especificados

Introduccin a Programacin en C++

// la presente lnea o parte de la lnea luego de la doble barra est hecha de comentarios.

Todo programa que hagamos en esta clase debera tener comentarios.

/* .. . .. . . . .. . . . . . . . . . */ comentarios de varias lneas

Todo lo que est en celeste no es parte del cdigo.

#include <iostream> Stream es un flujo de datos, mucha informacin.

Este comando es sirve para el pre procesamiento de C++. Instruye al pre procesador para que
se incluya en el programa el contenido del encabezado <iostream>

Funciones en C++ se componen de 4 cosas


int main ()
inttipo de retorno/resultado. Palabras clave.

mainNombre. Siempre debe existir una funcin main (dos funciones main causan errores). Es
la primera que se ejecuta independientemente de que no sea la primera que aparezca. Palabra
clave.

() y luego {}

Mostrar mensajes en pantalla

std::cout<<Mensaje a ser mostrado\n;

Programacin en C++

06-09-2017

Toda sentencia termina con un punto y coma. Si no se hace, obtenemos un error de sintaxis
(error de compilacin, compiladores de tiempo de compilacin).

std iostream est en la librera estndar de C++. std est dentro del grupo iostream, es un
conjunto de nombres. cout est dentro de std.

C++ Std LibraryIostreamStdcout

<> o .. significa que esto est en la Std Library de C++

Secuencia de escape. Carcter especial que necesita de cierta combinacin para hacer un
comportamiento particular.

<<Operador de insercin de stream. Sigue la direccin del flujo de datos.

return 0. Siempre debe terminar as una funcin.

Variables Numricos en C++

11-09-2017

La suma en C++ requiere de variables. Las variables son datos, valores, etc. Una ubicacin en
memoria que almacena un dato que ser usado por el programa.

Declarando Funcin

int Tipo de retorno main Nombre de funcin ()

Declaracin de Variable

Tipo+nombre+inicializacin

Tipos de datos

Int, float, double, char, string (conjunto de caracteres).

Nombre de variable

Convenciones
Variables en minsculas seguidas de nmero.
No iniciar con nmeros.
No iniciar con guiones bajos.
No incluir variables seguido de $ \ ; .
No se puede sumar caracteres y variables.
Evitar valores basura generados por re-uso de memoria
Para evitar eso se debe inicializar la variable (determinar desde donde empieza tal variable).
De preferencia se debe inicializar en 0, excepto aquellas que necesiten de cierto valor como
pi.
n1=0;
float pi=3,14;
Se puede declarar variables en la misma lnea o en varias lneas.
int n1=0, n2=0, n3=0;
int n4;
No declarar ms de una vez la misma variable (del mismo tipo).
C++ es case sensitive. A pesar de que no se debe usar mayus como variables n1 no es igual
que N1.
Cualquier comando debe ser ejecutado luego de declarar variable. Las variables pueden
escribirse incluso antes de main, pero siempre debe encontrarse antes del comando.
No se puede declarar la variable con el nombre del tipo de variable
int int=0;
Si se declara
int n5=3.5; El valor tomado ser 3 (es decir solo el entero). Igual con 3,9 (no aproxima).
float n1=7; el valor tomado ser 7, pero expresado como 7.00
Usar punto para los decimales.

cin

Operador de insercin de stream>> (Van del teclado a la variable)

Separar cin y cout, no en la misma lnea.

Suma

s=n1+n2;

n1+n2=s;

No son lo mismo en programacin. El igual se usa como un comando de asignacin.

a=b A a se le asigna b

b=a A b se le asigna a

int a=3;

int b=2;

El resultado sera

a=2

b=3
endl

Comando endline. Incluir un salto de lnea, como un \n. Todo lo que est listo parar mostrarse
en pantalla es mostrado. Vaca el buffer de salida.

std::endl;

20-09-2017

Introduccin a clases, objetos y cadenas

Clase: int, float, doubl, char, string. Podemos obtener tipos de datos nuevos mediante
clases. Definicin de un nuevo tipo de dato.
Si se describen las caractersticas de un objeto es posible identificarlo. Mientras ms
caractersticas se den, ser ms sencillo reconocer al objeto.
Una clase define un nuevo tipo de dato. Estos nuevos tipos de datos son objetos
(prcticamente cualquier objeto).
E.g:
Estudiantecdigo, nombre, apellido, carrera, colegio, GPA.
Estas caractersticas corresponden a todos los estudiantes.
Datos miembros: caractersticas.
Funciones miembros: Acciones a realizar sobre las caractersticas. cambiar carrera,
actualizar GPA
Objeto: Los objetos se encuentran dentro de una clase. Se trata de un individuo
perteneciente a una clase.
La agrupacin de objetos no necesariamente hace una clase.
Solo se define una vez cmo se comporta una clase.
Todos los objetos tienen las mismas caractersticas, pero no los mismos valores para cada
caracterstica.
Todo objeto debe tener una clase a la que pertenece.

Definir una clase

Siempre empieza con la palabra class, seguida del nombre de la clase (la primera SIEMPRE
con mayscula), llaves y punto y coma.
Si la clase es una palabra compuesta, ambas se escriben unido y cada palabra empezada con
mayscula. Con esto se diferencia aquello que ya viene del lenguaje C++ (int, doubl, char)
del nuevo tipo de dato.
Siempre fuera de main
Siempre termina con punto y coma luego de las llaves, caso contrario el compilador no
encontrar el final de la clase.
Clase debe incluir datos miembro y funciones miembro.

class EstudianteUniversitario

public:

void displayMessage () const

};
Public: especificador de acceso. Todo lo que est a continuacin puede ser utilizado por
otras funciones (como main).
Toda funcin tiene tipo de retorno, nombre, parntesis y llaves.
Void: tipo de retorno que no arroja ningn resultado. Solo muestra mensajes en pantalla.
displayMessage: Nombre de funcin siempre empieza con minscula. Cualquier palabra
consiguiente con mayscula y sin espacios.
(): Es una funcin. Los parntesis deben contener un dato adicional que requiere para hacer
su proceso, sino necesita tal dato pueden ir vacos.
const: constante. Esto hace que la funcin no cambie los datos del objeto. Acta como un
seguro.

Creacin de objetos

Anloga a declaracin de variables.

int z=0;

Estudiante e1;

Para cambiar una caracterstica de una clase primero debo crear un objeto de la clase.
e1 tambin debe inicializarse. Luego se

e1.displayMessage ();

Clases en C++

Parametros

Classdefparmetro

Mainusoargumento

Parmetros: datos adicionales para que funcin cumpla su tarea

Los parmetros se especifican en la definicin de la clase.

En una funcin siempre usar argumentos

Cin no lee ms all del espacio en blanco.

Argumento debe ser diferente del parmetro siempre.

Datos miembro siempre deben ir con especificador de acceso private.

Por defecto todo es privado, pero se recomienda siempre poner el especificador

Funciones Set y Get

Funcion set funcin para establecer o asignar un valor

Toda funcin set es de tipo void porque no devuelve resultados

void setNombre (string name)

{
nombre=name

debe ser del mismo tipo de la variable declarada.


Recomendacin: poner palabra que se relacione
Nunca una funcin set va a ser const

Funcin get Obtiene un valor y retorna el valor obtenido. Tiene como tipo de retorno el tipo de
dato miembro.

string getNombre () const

Return nombre

Hay que definir una funcin set y get para cada miembro.

Continuacin de funciones get y set

Datos miembro: caractersticas de un objeto (nombre, gpa, colegio)

funciones miembro definen el comportamiento del objeto y permiten ingresar valores a


datos miembro, modificndolo.
Lo datos miembros siempre empiezan con private. Recomendable escribirlos en espaol.
Las funciones miembro siempre empiezan con public.
Por cada dato miembros debo tener una funcin get y otra set.
Toda funcin set tiene tipo de retorno VOID.
Contina con set en minscula (como cualquier funcin) y el nombre elegido
arbitrariamente por dato miembro empezada en Mayscula.
Requiere un dato adicional, un parmetro.
El tipo debe ser igual al declarado anteriormente en datos miembros.
Se suele poner el mismo nombre del dato miembro como parmetro en ingls.
No hay const en funcin set
Siempre una funcin get debe llevar const. Empieza con el tipo de retorno de dato miembro.
Terminar con return nombrevariable;

Class Estudiante //definicion clase

private:

string nombre;

public:

void setNombre (string name) //empieza la definicin de la funcin; parmetro se define aqui

{
nombre=name

Repaso de Get/Set y Funciones Constructores

11-10-2017

Set nunca retorna un valor--> por eso siempre va con void

En set se realizan validaciones de datos (restricciones a lo que se ingresa)

Get siempre retorna un valor, tipo de retorno igual en funcin y parmetro

Constructor

Funcin miembro especial que no cumple todas las reglas para funciones que hemos
revisado. Permite inicializar objetos.
Funcin nica: No tiene ningn tipo de retorno
Debe estar en la clase
Debe estar en la parte private de la clase.
No es const. Modifica el objeto.

Tiene como nombre el mismo nombre de la clase. Empieza con este nombre

Class Estudiante

Constructor nombre Estudiante (string name, string lastname, int code )

: nombre(name), apellido(lastname), codigo(code) //empieza lista inicializadora, permite saber


que parmetro se asigna a que dato miembro

{ //cuerpo vacio por ahora)

Los datos adicionales que requiere (parmetros) son iguales en nmero a los datos
miembros de la clase
Siempre que se compila un cdigo este busca un constructor.
Ahora cada vez que cree un objeto debo inicializarlo.

Int main ()

Estudiante e1( , , 0)

para string
0 para int.
Constructores y Reusabilidad de Clases

16/10/2017

Funcin especial usada para inicializar datos miembros


Apenas empieza la parte publica de la clase se utiliza el constructor.
Todos los objetos que se creen deben incluir los constructores que creamos previamente
Si es que no se crea un constructor con argumentos, c++ creara un constructor implcito
Esto condiciona a los datos miembro, pues deben ser inicializados con los mismos
parmetros de la funcin constructor

Class Estudiante main

main

.cpp

Todo programa en c debe tener al menos una funcin main.


La ventaja que traen las clases es que pueden ser usadas por otros programas.
De ahora en adelante siempre se dividir Class de main. Seran dos programas:
1. La definicin de la clase debe ser guardada como un solo programa. De ahora en
adelante ser guardado en un archivo de extensin .h (header=encabezado).

Class
Class Estudiante.h

main

Main (original de la
Estudiante.cpp
clase)

Es buena costumbre llamar a ambos programas con el mismo nombre, pero el .cpp puede
tener otro nombre sin ningn problema.
Para ocupar el header se usa la funcin #include header.h (e.g #include Estudiante.h)
No se puede ocupar using en el header.
De ahora en adelante no se puede usar using en el encabezado (usar std::.); solo
ocupar en el main

le dice al programa que tal archivo est en la misma carpeta que tal programa .cpp. Si es que
no lo encuentra lo buscara en la librera estndar.

Las libreras de c++ son clases estandar. Siempre entre <>

Para ocupar varios programas en uno solo se usa la opcin proyecto.


Reusabilidad de Clases e Ingeniera de Software

18-10-2017

Reusar clases: quitar el main


En el encabezado no se debe usar using namespace std;
Esta es la definicin. Ya que ser reusada por todas los dems programas es necesario
usar std:: con string, cout, cin, endl.
En el programa que contenga main es posible usar using namespace std;
Este es el uso.
El encabezado no debe ser accesible por cualquier usuario (recetario y formulas
secretas). El programa que contiene main entrega datos al usuario y le permite
interactuar (men).

Interfaz

Forma en la que las personas interactan con la clase. Cosas que pueden ser usadas de la
clase. No incluye informacin de cmo funcionan tales procesos.

void setNombre (std::string name) Esto sale en main

nombre=name Esto no sale en main

Separar men del recetario

Cmo se separan las funciones miembro de toda la definicin de la clase?

Separar Clase nuevamente. Interfaz/Menu


Clase.h
class
Clase.cpp
std::
void setNombre (std::string);
prototipos
Clase::Constructor clase. class
#include
std:: Estudiante.h Estudiante.h
Clase Using
Estudiante.h Cuerpos
Estudiante::funcion
Main
Using Estudiante.cpp Implementacion
main /Recetario
#include
.cpp Estudiante.h

Uso/Orden
main.cpp main
(nombre
trivial) main.cpp
(nombre
trivial)

S-ar putea să vă placă și