Bienvenido al Curso

1

Introducción al curso básico de algoritmos y estructuras de datos

Introducción a los algoritmos

2

¿Qué entiende una computadora?

3

Lenguajes de programación

4

Estructuras de datos

5

¿Qué es un algoritmo?

6

Metodología para la construcción de un algoritmo

7

Variables y tipos de datos

8

User defined data types

9

Instalando Ubuntu Bash en Windows

10

Creando nuestro user defined data type

11

Abstract Data Types básicos: Lists, Stacks, Queues

12

Explicación gráfica Data Types básicos

13

Glosario de funciones para Abstract Data Types

14

Clases y objetos

15

Creando tu primera Queue: Arrays

16

Creando tu primera Queue: implementación.

17

Creando tu primera Queue: implementar la función enQueue

18

Creando tu primera Queue: implementar la función deQueue

19

Creando tu primera Queue: main code

Algoritmos de ordenamiento

20

Algoritmos de ordenamiento

21

Bubble sort

22

Bubble sort: implementación

23

Bubble sort: main code

24

Insertion sort

25

Desafío: implementa un algoritmo de ordenamiento

Recursividad

26

Recursividad

27

La función Factorial, calculando el factorial recursivamente

28

Manejo de cadenas de caracteres

29

Arte: Generando arte recursivo

Divide and conquer y programación dinámica

30

Divide and Conquer (divide y vencerás)

31

Qué es la programación dinámica (divide y vencerás v2.0)

32

MergeSort

33

Desafío: Buscar el algortimo más rápido de sort

34

Implementando QuickSort con Python

35

Implementando QuickSort con Python: main code

Algoritmos 'Greedy'

36

Qué son los Greedy Algorithm

37

Ejercicio de programación greedy

38

Ejercio de programación greedy: main code

Grafos y árboles

39

Grafos y sus aplicaciones

40

Árboles

¿Cómo comparar Algoritmos?

41

Cómo comparar algoritmos y ritmo de crecimiento

¿Qué sigue?

42

Cierre del curso y siguientes pasos

Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

User defined data types

8/42
Recursos

Los User Defined DataTypes son tipos de datos creados por los desarrolladores de software para realizar múltiples acciones.

Estos datos pueden estar compuestos por otro tipo de datos previamente definidos pero, por defecto, no son parte del sistema. Además, dependiendo del lenguaje de programación que manejes, deberás tener claro (o no) el consumo de memoria.

Por ejemplo, las aplicación de cobranzas necesitan un tipo de dato personalizado para las personas con deudas.

Aportes 51

Preguntas 7

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Tambien existen el tipado estático y dinámico, en el estático el tipo de variable se conoce en el tiempo de compilacion (compile-time) mientras que en el dinamico, se conoce en el tiempo de ejecuccion del programa(run-time).
Lenguajes de tipado estático: Java, C, C++, FORTRAN, Pascal, Scala
Lenguajes de tipado dinámico:JavaScript, Objective-C, PHP, Python, Ruby, Lisp,Tcl.

En Java , necesitas declarar el tipo de variable que es, antes de poder usarlo

int data;
data = 50;
data = “Hello World!”; // Genera un error en compilacion

En Python, no requiere que declares el tipo de variable antes de usarlo

data = 10;
data = “Hello World!”; // No causa ningun error

Por otro lado estan los tipados debiles y fuertes, que tiene que ver con el limite que tiene una variable con respecto a su tipo de dato.
Debil Tipado (PHP):

$temp = “Hello World!”;
$temp = $temp + 10; // no causa ningun error
echo $temp;

Fuertemente Tipado (Python)

temp = “Hello World!”
temp = temp + 10; // muestra un error

Les dejo una imagen donde se muestra cada lenguaje en su respectivo cuadrante de tipado.

class client 
{
    constructor (name, id, credit, adress){
        this.name = name
        this.id = id
        this.credit = credit
        this.adress = adress
    }
}

let client1 = new client ("Camilo Valencia", 1, 1000000, "caller 1, carrera 1, ciudad Bolivar")

console.log(client1);```

¿Cuál es la diferencia entre System-defined data types y User-defined data types?

Recomiendo hacer ete curso con alguna experiencia previa en programación, ayuda a entender y/o recordar algunos conceptos

Uso de “User defined data types: ” Cuando definimos un tipo de dato por nuestra cuenta, lo hacemos para hacer un mejor manejo de tipo de dato dentro de un proyecto, por ejemplo teniendo un proyecto basico tenemos muchos tipos de datos primitivos declarados los cuales son, int, float, char, etc etc etc… Bueno cuando se trabaja en proyectos grandes es un problema tener tantos datos primitivos ya que seria practicamente una sopa de lo mismo por todos lados, entonces aqui es donde aplica el uso este tipo de datos, por que mediante a ellos podemos crear variables para definir el uso adecuado de la misma, como por ejemplo una variable para contador de la vida del personaje de un video juego.


struct: Es una palabra reservada del lenguaje C, Basicamente es un conjunto de variables, del mismo tipo y su definicion se parecida a los objetos literales de JS, de la siguiente forma:

struct fecha
{
int  dia;
int mes;
int anio;
};

Declarar un variable en JS vs C++:

* JS: var numero = 1;
* C++: int numero = 1;

Resumen: Entonces con esto, es la diferencia, en JS, no hace falta declarar como tal el tipo de dato con el valor que le asignamos ya el lenguaje lo interpretara correctamente, aunque puede ocasionar algunos errores de syntax, en C++ es un lenguaje mas correcto y rigido y tiene que llevar su declaracion de tipos de datos tal cual al que vamos a utilizar.

Tipado Débil:
PHP
Javascript
Tipado Fuerte:
C
C#
Java
Ruby
Python

Unidades
1 bit = 1 ó 0
1byte = 8 bits

El peso de los tipos de datos
int = 2bytes
float = 4bytes

Haciendo una pequeña operación con los valores dados en bytes en la clase quedaría así.
char name(30);
int id(16);
float balance(8);
char adress(50)

Muy buen profesor Ricardo.

Hay lenguajes de programación que son tipados, duramente tipados y no tipados.

Hay un dato importante que no mencionó, es el varchar: Este dato es como un char pero no es necesario pasarle la logitud exacta de carácteres que tendrá, sino la cantida de bytes que tendrá. Por ejemplo:

(9, 4) 9 es la cantidad máxima de bytes que tendrá y 4 la cantidad mínima que pedirá. Si el input solo necesita 6 bytes, los 3 que quedan se guardarán como memoria, es decir que no consumirán memória c:

Perfecto para repasar conceptos de arquitectura de computadoras

este profe es un capo

  • Los user defined datatype son los tipo de datos creados por los usuarios, estos tipos de datos pueden estar compuestos por otros tipos de datos.
  • En los lenguajes estructurados estos se implementan en struct y en los lenguajes más modernos se realiza mediante clases.
  • En los lenguajes tipados debes de definir el tipo de dato cuando declaras una variable, en los lenguajes no tipos es el compilador que detecta el tipo de dato.

Dependiendo del lenguaje de programación el tamaño de los tipos de datos puede variar, como es el caso de int. En ciertos lenguajes puede tener un tamaño de 32 bits o en otros tipos de lenguajes 16 bits.
Según la clase anterior de Ricardo Celis, int tiene un tamaño de 2 bytes, lo que quiere decir que se pueden almacenar hasta 2^(16) = 65.536 valores.
Un dato tipo int de 4 bytes pude almacenar 2^(32) = 4.294.967.296‬ valores.

se requeriría de realizar estos ejemplos ya en programas para validar cada definición.

Tengo curiosidad muchos de los que vemos este curso ya hemos estado en una universidad, en que universidades han estudiado ustedes? yo estudie en la universidad Piloto de Colombia

EJEMPLOS DE LENGUAJES TIPADOS Y NO TIPADOS
Tipado: C++
No tipado: JavaScript

en lenguaje C, son los Struct Cierto?

Que genial y que responsabilidad tener que pensar en la memoria que se utilizará y hacer los cálculos correctos.

Falta, mencionar que cada una de esas etiquetas que pone son instancias de la clase, osea una característica del dato que se está definiendo.

Si nunca han usado C, para entender el ejemplo tienen que saber que en C tienes que especificar cuantos caracteres de tipo string va a almacenar una variable, a diferenencia de otros lenguaje la asignacion de byte no es automatica, tiene que ser especificada por el usuario

Algo tan sencillo y en la escuela me hacían perder 😅

Los tipos de datos definidos por el usuario son tipos de datos que son definidos por el programador en lugar de estar integrados en un lenguaje de programación. Permiten a los desarrolladores crear sus propios tipos de datos, lo que puede ser útil para representar conceptos complejos o abstractos.

Algunos ejemplos comunes de tipos de datos definidos por el usuario incluyen:

  • Estructuras: Una estructura es un tipo de dato que combina diferentes tipos de datos en una sola unidad. Por ejemplo, una estructura puede representar una persona y contener campos como nombre, edad, dirección y número de teléfono.
  • Clases: Las clases son tipos de datos que contienen métodos y variables que definen el comportamiento y las características de un objeto. Las clases son la base de la programación orientada a objetos.
  • Enumeraciones: Una enumeración es un tipo de dato que define un conjunto de constantes con nombres significativos. Por ejemplo, una enumeración puede definir los días de la semana como Lunes, Martes, Miércoles, etc.

la verdad que typescript trajo mucho orden al desarrollo web.

Interesante recordé varias cosas

Bien explicado!

yo creo que el curso de programación básica deberían remplantearlo, y actualizarlo viendo este curso veo muy corto el curso de programación básica de platzi,

Para este tema y la lectura anterior considero tener conocimientos previos pero el curso se llama “Fundamentos básicos de algoritmos” entonces porqué se ven temas avanzados…? 😕

continuemos…

😃

La verdad esta como facil

si

Uso de “User defined data types:” Cuando definimos un tipo de dato por nuestra cuenta, lo hacemos para hacer un mejor manejo de tipo de dato dentro de un proyecto, por ejemplo teniendo un proyecto basico tenemos muchos tipos de datos primitivos declarados los cuales son, int, float, char, etc etc etc… Bueno cuando se trabaja en proyectos grandes es un problema tener tantos datos primitivos ya que seria practicamente una sopa de lo mismo por todos lados, entonces aqui es donde aplica el uso este tipo de datos, por que mediante a ellos podemos crear variables para definir el uso adecuado de la misma, como por ejemplo una variable para contador de la vida del personaje de un video juego.

struct: Es una palabra reservada del lenguaje C, Basicamente es un conjunto de variables, del mismo tipo y su definicion se parecida a los objetos literales de JS, de la siguiente forma:

<struct fecha
{
int  dia;
int mes;
int anio;
};>

Pueden bajar un poco la velocidad del vídeo a .85 y ayuda a modular el ritmo de voz del profesor.

excelente profe

Todo ok 😃

Vamos por buen camino

Interesante!

esto hace un algoritmo con menos desperdicio de recursos

En pocas palabras es lo que definimos e interpretamos nosotros como datos.

User defined data types
Poder definir los tipos de datos
Clases - strong(cuantos bytes usarán las variables)

Que genial

Todo muy claro y bien sustentado en la explicación 😃

Interesante!

El lenguaje de javascript no necesita que le digas que tipo de dato es, ya que es tipado y el puede saber que dato le estas pasando.

Cada clase ademas de darme ganas de aprender los algoritmos tambien me da ganas de inciar el curso de C xd (pero le tengo miedo)

  1. Mis apuntes sobre: "User defined data types"
    Hay lenguajes tipados, no tipados, duramente tipados.
    Ejemplo tipo de dato (struct de C): Nombre, ID, Balance, Dirección