PDF de programación - Programación en C++ - Introducción

Imágen de pdf Programación en C++ - Introducción

Programación en C++ - Introduccióngráfica de visualizaciones

Publicado el 9 de Mayo del 2017
1.092 visualizaciones desde el 9 de Mayo del 2017
880,0 KB
168 paginas
Creado hace 12a (26/05/2011)
Programación en C++

#include
using namespace

<iostream>


std;



main(void)

for

(int
cout
return 0;



= 0; cnt

cnt
<< ″I will not throw airplanes in class.\n″;

< 500; cnt++)



int
{

}

Contenidos
El entorno UNIX
¿Qué es programar?
Herramientas
Técnicas de programación
Estructuras de programación
Estilo de codificación
Tipos y estructuras
Operadores
Funciones y parámetros
Preproceso y bibliotecas
Herramientas

de datos

de desarrollo I

de desarrollo II

© Francisco Rosales
& Jose María Peña

Programación C++

3

El Entorno UNIX
¿Qué es UNIX?
¡Cómo es UNIX!
¡Cómo es Linux!
Usuarios y Grupos
Sesión de trabajo
Procesos y Concurrencia
Sistema de Ficheros
Descriptores de fichero

© Francisco Rosales
& Jose María Peña

Programación C++

4

¿Qué es UNIX?
Uno de los SSOO más extensos y potentes

■ Multiusuario

■ Mucho usuarios simultáneos

■ Multiproceso

■ Cada usuario ejecutando simultáneamente

muchos procesos

■ Multiplataforma

■ Escrito 99% en C
■ Portado a multitud de plataformas

© Francisco Rosales
& Jose María Peña

Programación C++

5

¡Cómo es UNIX!
■ Sensible al tipo de letra
unix <> Unix <> UNIX
■ Para usuarios NO torpes

■ Hace lo que se le pide sin preguntar

rm –r *

borraría TODO

■ Lo borrado es irrecuperable

© Francisco Rosales
& Jose María Peña

Programación C++

6

¡Cómo es Linux!
■ Estándar POSIX

■ Portable OperatingSystemInterface

■ Licencia GNU

■ Evoluciona

■ Debe suministrarse el código fuente!

■ Programadores voluntarios de todo el

mundo lo mantienen al día

■ Gratis

■ Se paga la "Distribución"

© Francisco Rosales
& Jose María Peña

Programación C++

7

Usuario
■ Debe tener abierta cuenta en el sistema
■ Se identifica con un nombre de usuario

I

loginname

■ Cuentas protegida por contraseña

password

■ Internamente el sistema identifica al usuario

con un número

UID

UserIdentifier

© Francisco Rosales
& Jose María Peña

Programación C++

8

Grupo
■ Los usuarios están organizados en

grupos

II

■ Cada usuario pertenece al menos a un

grupo

■ Internamente el sistema identifica al

grupo con un número

GID

GroupIdentifier

© Francisco Rosales
& Jose María Peña

Programación C++

9

Privilegios
■ Operaciones que un usuario puede

III

realizar en el sistema

■ Delimitadas en función de:

■ Su identidad (pareja UID y GID)
■ Permisos de acceso al fichero (9 bits)
eXecute

Write

Read

rwxrwxrwx

Owner

Group

Others

© Francisco Rosales
& Jose María Peña

Programación C++

10

IV

Superusuario
■ También denominado root
■ Encargado de administrar el sistema
■ Tiene UID = 0 (cero)
■ No tiene restricciones de ningún tipo
■ Puede hacer y deshacer lo que quiera
■ La administración de UNIX es:

■ Delicada y de responsabilidad
■ Exige amplios conocimientos

© Francisco Rosales
& Jose María Peña

Programación C++

11

Sesión de trabajo
I
■ Periodo de tiempo que un usuario está

utilizando el sistema
■ Identificación frente al sistema

login: loginname_
passwd: *******_

■ Se arranca un intérprete de mandatos

prompt> _
■ Para terminar...

exit

logout

o

© Francisco Rosales
& Jose María Peña

Programación C++

12

Intérprete de mandatos
■ La interacción del usuario con el

sistema UNIX suele ser a través de
un intérprete de mandatos

II

■ Se le denomina shell (concha)
■ No hay una sino varias, a escoger.
■ Para uso interactivo y programación
■ Para más información, realizar el tutorial

http://laurel.datsi.fi.upm.es/~ssoo/FPSO/download/Entorno%20UNIX.ps

© Francisco Rosales
& Jose María Peña

Programación C++

13

Mandatos

III

mandato [opciones] [argumentos...]



■ Campos separados por espacios
■ [ ]
■ ...
■ Las opciones comienzan por un -
■ Petición de ayuda sobre un mandato

indica opcional
indica uno o varios

(menos)

-h
--help

o

© Francisco Rosales
& Jose María Peña

Programación C++

14

man [what] Manual Pages
■ Copia onlinede los manuales del sistema
■ Secciones:

sh, man, cat)

open, umask)
printf, fopen)

Mandatos (ej.
Llamadas al sistema (ej.
Funciones de librería (ej.
Dispositivos (ej.
Formato de ficheros (ej.
Juegos
Miscelánea
Mandatos de Administración del Sistema

1.
2.
3.
4.
5.
6.
7.
8.

null)

passwd)

© Francisco Rosales
& Jose María Peña

Programación C++

15

Procesos
■ Al invocar un mandato:

I

■ Se ejecuta el fichero con ese nombre
■ Todo programa en ejecución es un

proceso

■ Internamente el sistema identifica cada

proceso con un número

PID

Process Identifier

© Francisco Rosales
& Jose María Peña

Programación C++

16

Concurrencia
■ Cada proceso activo de cada usuario del

sistema, compite con los demás por ejecutar
■ El sistema operativo decide cuál ejecuta en

II

cada momento

■ Todo sucede muy muy deprisa:

■ Cada proceso avanza como si fuera el único
■ Todos están avanzando simultáneamente

■ ps

Muestra los procesos del sistema

© Francisco Rosales
& Jose María Peña

Programación C++

17

III

Jerarquía
■ Los procesos se organizan en una

jerarquía padre--hijo(s)

■ El ancestro es el proceso init

con PID = 1

■ Cada proceso está asociado a su

proceso padre por el PPID

© Francisco Rosales
& Jose María Peña

Programación C++

18

Árbol de Ficheros
■ Una única estructura jerárquica de ficheros
■ En UNIX los dispositivos se “montan”

■ NO existe el concepto de “unidad”

I

■ Al entrar al sistema, nos situamos en el HOME
■ Pertenece al usuario

■ Por debajo de él podemos crear cuantos subdirectorios o

ficheros queramos

© Francisco Rosales
& Jose María Peña

Programación C++

19

■ Directorio raíz

■ Es la raíz de la jerárquica de nombres

■ se denota con / (dividido) no con el \

■ Directorio HOME

Tipos de objeto
■ Directorios:

■ Contienen siempre las dos entradas:

II

. (punto)
.. (punto punto)



refiere al directorio que la contiene
refiere al directorio padre de este

■ Ficheros normales:
■ Secuencias de bytes
■ Ficheros especiales:

■ Son el interfaz de acceso a los dispositivos
■ Están bajo el directorio /dev
■ Se tratan exactamente igual que los ficheros

normales, de forma que son indistinguibles

© Francisco Rosales
& Jose María Peña

Programación C++

20

pwd PrintWorkingDirectory
■ Cuál es el directorio en que nos

encontramos en cada momento, al cuál
denominamos directorio actual de
trabajo

© Francisco Rosales
& Jose María Peña

Programación C++

21

cd [dir] ChangeDirectory
■ Cambia del actual directorio a otro
cd
Invocado sin argumento
nos devuelve al HOME
Realmente nos deja en el
directorio actual de trabajo
Cambia al directorio padre
del directorio actual

cd ..

cd .

© Francisco Rosales
& Jose María Peña

Programación C++

22

ls [-opt] [dirs...]
■ Presenta el contenido en los directorios

List Directory

indicados

■ Si no se indica se asume el directorio actual
■ Las opciones más usadas:

■ -l



Una línea por entrada con: permisos,
propietario, grupo, tamaño, fecha, etc
■ -a Muestra entradas que empiezan por .
(punto), que normalmente no se ven
Recursivamente los subdirectorios

■ -R



© Francisco Rosales
& Jose María Peña

Programación C++

23

Descriptores de fichero
I
■ Los procesos manejan ficheros a través

de los denominados descriptores de
fichero
■ El resultado de abrir un fichero es un

descriptor

■ Las operaciones de manejo (lectura,

escritura, etc.) usan el descriptor

■ Para los programas, un descriptor no es

más que un número entero positivo

© Francisco Rosales
& Jose María Peña

Programación C++

24

Descriptores estándar
■ Son los descriptores 0, 1 y 2
■ Se considera que siempre están abiertos
■ Los programas estándar los usan debidamente
0 Entrada estándar

II



De él se leerán los datos a procesar

1 Salida estándar



En él se escribirán los resultados del proceso

2 Error estándar



En él se escribirán los errores del proceso

© Francisco Rosales
& Jose María Peña

Programación C++

25

¿Qué es programar?

¿Cómo es un ordenador por dentro?
¿Qué sabe hacer un ordenador?
¿Para qué se usan los ordenadores?
Ciclo de vida del software
Ciclo de programación

¿Cómo es un ordenador por dentro?

Memoria
Principal

RAM

Mapas de
memoria de
programa
PILA
PILA

PILA

DATOS
DATOS
TEXTO
TEXTO

DATOS
TEXTO

ROM

© Francisco Rosales
& Jose María Peña

Arquitectura
Von Newmann

Controladoras
de Perifericos

µP

ALU

Bus de datos

Registros

Bus de

Entrada/Salida

Controladora
Gráfica AGP

Controladora
de Disco IDE

Controladora

USB

Controladora
RS232 Modem

Programación C++

27

¿Qué sabe hacer un ordenador?
Muy poco Rapidííííííííísimo
■ Ejecuta un único hilo de instrucciones:
■ Aritméticas: suma, resta, multiplicación...
■ Lógicas: igual, mayor, menor...
■ Salto: condicional, incondicional, llamada...

■ A una increíble velocidad
■ PC a 3000 MIPS y subiendo

■ Sin pausa

© Francisco Rosales
& Jose María Peña

Programación C++

28

¿Para qué se usan los ordenadores?
■ Sólo hará lo que alguien le diga cómo

hacer
■ Problemas tengan solución “a mano”
■ Programas útiles para alguien:

■ Tareas complejas, de precisión, tediosas, etc

■ Es necesario desarrollar software

■ No es trivial

© Francisco Rosales
& Jose María Peña

Programación C++

29

A.--
B.--
C.--

1, 1.5
...2

Especificación

Análisis

Ciclo de vida
del software I

1.--
2.--
3.--

Diseño

main(){}

A.OK
B.OK
C.OK

Programación

Usuario

Implantación

© Francisco Rosales
& Jose María Peña

Validación

Programación C++

30

Ciclo de vida del software II
■ Especificación

■ ¿Qué quiere exactamente el usuario final?
■ Contrato

■ Análisis

■ ¿Cómo resolver el problema?
■ Descomposición

■ Diseño

■ Cada una de las partes y su interconexión

© Francisco Rosales
& Jose María Peña

Programación C++

31

Ciclo de vida del software III
■ Programación
■ Integración

■ Calidad e integración de cada módul
  • Links de descarga
http://lwp-l.com/pdf3425

Comentarios de: Programación en C++ - Introducción (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad