Tipos de Datos Abstractos I - PowerPoint PPT Presentation

1 / 10
About This Presentation
Title:

Tipos de Datos Abstractos I

Description:

Una estructura (struct) permite agrupar variables de varios tipos bajo un mismo nombre. ... Racional Restar(Racional x, Racional y); /* Retorna x-y ... – PowerPoint PPT presentation

Number of Views:130
Avg rating:3.0/5.0
Slides: 11
Provided by: FelipeC2
Category:

less

Transcript and Presenter's Notes

Title: Tipos de Datos Abstractos I


1
Tipos de Datos Abstractos (I)
  • Clase 21
  • Introducción a la Programación

2
Estructuras (structs)
  • Una estructura (struct) permite agrupar variables
    de varios tipos bajo un mismo nombre.
  • De esta forma es posible crear nuevos tipos de
    datos complejos, basándose en los tipos básicos
    que suministra el lenguaje de programación.
  • Ejemplo
  • Podemos crear un nuevo tipo de dato que
    llamaremos TipoAlumno que tiene las siguientes
    características
  • Nombre, número de alumno, promedio acumulado,
    generación.
  • Luego podemos definir variables de este nuevo
    tipo
  • TipoAlumno alumno1
  • Para que sirve?
  • Hacer programas que de una forma simple y
    ordenada trabajen con datos más complejos.

3
Uso de struct, sintaxis
EJEMPLO struct Alumno char Nombre30
char NumAlumno8 float Nota1
float Nota2 float Nota3 float
NotaFinal A1, A2, A3 En este caso las
variables A1, A2 y A3 son de tipo Alumno
struct nombre componente1
componente2 ... componenteN
lista-variables
Dónde cada componente es de la forma tipo
nombre
4
Otras formas de operar structs
  • Uso de un campo
  • estructura.componente
  • Ej. A2.nombre
  • Asignacion de una estructura a otra
  • A2 A1
  • Declaración y asinación
  • struct Alumno A "Elvira", "98231465", 6.0,
    5.5, 5.0, 5.5
  • Función que retorna una estructura
  • struct Alumno NuevoAlumno(char Nombre) ...
  • Función que recibe como argumento una estructura
  • void CalculaNota(struct Alumno A1) ...

5
Cómo definir un arreglo de un struct
  • struct Alumno char nombre30
    char NumAlumno8 float Nota1 float
    Nota2 float Nota3 float NotaFinal
    AlumnosNUM_ALUMNOS
  • En este caso, el nombre del primer alumno se
    referenciaría como
  • Alumnos0.Nombre

6
Defición de nuevos tipos typedef
  • Typedef nos permite definir un nuevo tipo de
    datos
  • Ejemplo tipo de datos Alumno
  • Ahora podemos definir variables de tipo Alumno
  • Alumno alumno1, alumno2

typedef struct char nombre30
char NumAlumno8 float Nota1
float Nota2 float Nota3 float
NotaFinal Alumno
7
Nuevos tipos typedef
  • La definición del nuevo tipo nos evita tener que
    repetir reiteradamente struct al usar
    estructuras, ejemplo
  • Declaración de variables
  • Alumno A4, A5, A6
  • Función que retorna una estructura
  • Alumno NuevoAlumno(char Nombre) ...
  • Función que recibe como argumento una estructura
  • void CalculaNota(Alumno A1) ...
  • Declaración e inicializacion de variable
  • Alumno A "Elvira", "98231465", 6.0, 5.5, 5.0,
    5.5

8
Ejemplo implementación de operaciones con
números racionales
  • Tipo de datos
  •    typedef struct       int num      int
    den   Racional
  • Interfaz de la funciones a implementar
  •    Racional NuevoRacional(int n, int d)   /
    Constructor /
  •    int Numerador(Racional x)   / Retorna el
    numerador de x /
  •    int Denominador(Racional x)   / Retorna el
    denominador de x /
  •    Racional Sumar(Racional x, Racional
    y)         / Retorna xy /
  •    Racional Restar(Racional x, Racional
    y)        / Retorna x-y /
  •    Racional Multiplicar(Racional x, Racional
    y)   / Retorna xy /
  •    Racional Dividir(Racional x, Racional
    y)       / Retorna x/y /
  • int SonIguales(Racional x, Racional y)   /
    TRUE si xy /
  •    void Imprimir(Racional x)   / Imprime x en
    la pantalla num/den /

9
Racional NuevoRacional(int n, int d)
Racional x x.num n x.den d
return(x) int Numerador(Racional x)
return(x.num) int
Denominador(Racional x) return(x.den)
Racional Sumar(Racional x, Racional y)
Racional z z.num x.numy.den
x.deny.num z.den x.deny.den
return(z) Racional Restar(Racional x,
Racional y) Racional z z.num
x.numy.den - x.deny.num z.den
x.deny.den return(z)
10
Racional Multiplicar(Racional x, Racional y)
Racional z z.num x.numy.num
z.den x.deny.den return(z)
Racional Dividir(Racional x, Racional y)
Racional z z.num x.numy.den
z.den x.deny.num return(z)
int SonIguales(Racional x, Racional y)
return(x.numy.denx.deny.num) void
Imprimir(Racional x) printf("d/d",
x.num, x.den) return
Write a Comment
User Comments (0)
About PowerShow.com