Bienvenidos a un nuevo curso. Ahora estoy en el ciclo de grado superior: Desarrollo de aplicaciones multiplataforma. Y voy a ser parte del experimento de la formación dual. Estaré haciendo practicas durante un año, y a la vez finalizando la formación.

Deseadme suerte.

jueves, 30 de octubre de 2014

Lenguaje C

0

Caracteres
C hace normalmente un tratamiento muy sucio de los datos que almacena, mezclando representación interna y externa.
Una variable de tipo carácter, almacena internamente el valor ASCII del carácter. Externamente está esperando que le introduzca exactamente ese valor. 
Es al utilizar ciertas funciones de librería para representar esos caracteres por pantalla ciuando es interpretado ese valor y se muestran los caracteres tal cual. Yo en el programa puedo usar indistintamente 65, 'A', o '\65'. Para el lenguaje de programación C todo eso tiene el valor de 65.
Así ser esto así, yo puedo sumar y restar enteros y caracteres entre sí, o sólo caracteres, compararlos, etc. Ejemplo, la condición para indicar si una letra es mayúscula sería; (letra>='A' && letra<='Z')

Al parecer lo va a pasar más rápido de lo normal. Copio lo que se pueda!!

ctype.h
Existe un archivo de cabecera de la biblioteca estándar del lenguaje de programación C diseñado para operaciones básicas con caracteres. Contiene los prototipos de las funciones y macros para clasificar caracteres. Su uso no es necesario en absoluto ya que las cosas que hace son fácilmente programables.

Cadena de caracteres
Los stringhs en C son vectores de caracteres que tienen almacenado en algún punto el carácter '\0', que indica el fin de string.
Para declaraer una cadena de caracteres es necesario un carácter más que la cadena más larga que pueda contener, par dejar sitio para el carácter nulo del final de la cadena.
Las cadenas van entre comillas dobles.
Ejemplo: char v[6]="Lunes"
No es necesario añadir explícitamente el carácter nulo al final de las constantes de cadena, el compilador lo hace automáticamente.
Lectura de cadenas:
-char cadenas[255];
 scanf ("%s", cadena); /* No es necesario usar & porque cadena ya es un puntero*/
Escritura de cadenas:
-printf ("%i", cadena);

Conversión de cadenas: stdlib.h

Me distraje :/

double atof (cadena): Convierte una cadena de dígitos a double.
int atoi (cadena): Convierte una cadena de dígitos 
...

Manipulación de cadenas: string.h

Me falta un carácter

char*strcpy (s1, s2): Copia la cadena s2 en s1. Devuelbve s1.
char*strncpy (s1, s2, n): Copia si es posible n caracteres de la cadena s2 en s1. Devuelves s1.
char*strcat (s1, s2): Añade s2 a s1, machacando el valor final de s1, '\0'. Devuelve s1.
int strcmp (s1, s2): Compara las cadenas s1 y s2. Devuelve un número negativo si s1>...

Búsqueda en cadenas

Solo nombrare los tipos

char*strchr (s1, c):
size_t strcspn (s1, s2):
size_tstrspn (s1, s2):
char*strpbrk (s1, s2):
char*strrchr (s1, c):
char*strstr (s1, s2):
char*strtok (s1, s2): 

fin del tema 5 C, retomamos el tema 6 de teoría

Registros
Un registro es una agrupación o estructura de datos que me permiten almacenar agrupados diferentes datos que pueden ser de diferentes tipos.
Cuando yo quiero guardar información sobre cualquier cosa, suelo tener que guardar informaciones de tipos muy diversos que entre todos defienden cómo es esa cosa.
Por ejemplo, si quiero guardar información sobre diferentes coches que tengo guardados en un garaje procedentes de embargos de un banco, podría guardar modelo, mrca, color, matricula, kilometros, antiguedad, estado, etc. Cada uno de estos datos sería de tipos diferentes, y además no existe un orden concretro en el que deban ser almacenados esos datos, aunque si una asociación con lo que estoy guardando.
Para esto no podría utilizar un vector, incluso en el caso de que todos los datos fueran del mismo tipo, se tefieren todos a una misma realidad y concretamente a diferentes "subdatos"  de esa realidad, y me interesa guardar cada uno como una "subcaracteristica" de la cosa de la que estoy guardando información.
Un claro ejemplo de esto es un fecha, consta de día, mes y año, los tres son datos enteros, ahora bien, podría establecer limitaciones a los valores que pueden tomar esos tres datos. Pero no se me ocurriría guardarlos en un vector de tres componenetes, sino en un registro con tres campos que se llaman exactamente así: día, mes y agno.
Al igual que con los vectores, primero hay que declarar el tipo, con los campos que va a tener y posteriormente declarar las variables que serán de ese tipo.
Para acceder después a un campo concreto de un registro en el programa, se hará poniendo el nombre de la variable y el nombre del campo, separados por un punto.

Declaración y uso de registros
tipos
     <nombre_tipo>=          registro
                                                       <nombre_campo1>:<tipo_1>;
                                                       <nombre_campo_2>:<tipo2>;
                                                        ...
                                                       <nombre_campo_n>:<tipo_n>;
                                           freg;
variabloes
     <nombre_variable_1>, <nombre_variable_2>:<nombre_tipo>;
     <nombre_variable_3>:<nombre_tipo>;
     ...
principio
...
... <nombre_variable_1>.<nombre_campo_3>...
...
fin

Ejemplos (1)
tipos
     cad20=cadena[20];
     tipo_sexo=(varon,hembra);
     tipo_fecha=             registro
                                                  dia:1,31;
                                                  mes:1,12;
                                                  anyo: 0, 3000;
                                    freg;
    tipo_persona=         registro
                                                nombre, apellido1, apellido2, cad20;
                                                sexo tipo_sexo,
                                                fecha_nacimiento:tipo_fecha;
                                    freg;
    tipo_complejo_1=   registro
                                            parte_real, parte_imaginaria:real;
                                    freg;
    tipo_complejo_2=   registro
                                            modulo, argumentación real;
                                    freg;
variables
     ayer, hoy: tipo:fecha;
     yo, tu, el: tipo_persona;
    z: tipo_complejo_1;
    w: tipo_complejo_2;

Ejemplos (2)
principio
     ...
     ayer.dia:=13;
     ayer.mes:=3;
     ayer.anyo:=1988;
     hoy.día:=ayer.dia+1;
     el.sexo:=varon;
    el.fecha_nacimiento:=ayer;
    z.parte_real:=w.modulo*cos(w.argumento);
    z.parte_imaginaria:=w.modulo*sin(w.argumento);
    ...
fin

Ejercicios
Dado un tipo complejo con parte real y parte imaginaria, crear los siguientes procedimientos:
    tipos
          tipo.complejo:registro
               parte_real, parte_imaginaria:real;
         freg;
procedimiento crear_complejos(E v1:real, E v2:real, sx:tipo_complejo)
procedimiento sumar_complejos(Ex:tipo_complejo, E y:tipo_complejo. sz:tipo_complejo)
procedimiento multiplicar_complejos (Ex:tipo_complejo, E y:tipo_complejo. sz:tipo_complejo)

Related Posts:

  • Puesta al día en Programación Entre tipo booleando y tipo entero me falto por incluir las tablas de verdad: Representación en complemento a 2 Para representar los enteros … Read More
  • Puesta al día II ¿Cómo funciona printf? Es lo que normalmente utilizaremos para mostrar información por pantalla. El primer parámetro es na cadena donde podemos escr… Read More
  • Resolución de Problemas Pues entre que ayer me fui antes y hoy llego super tarde (sobre menos cuarto) pues voy apañada. Y no, no se me han pegado las sabanas. Ojala fuera es… Read More
  • Codificación de programas en lenguajes C... Continuación Tema 5 Codificación de programas en lenguajes C Operadores ()    Cambia la prioridad de las operaciones. []  &n… Read More
  • Retomamos la teoría Selección múltiple: Sistaxis y semántica caso <nombrevariable> sea <constante 1>: <acción 1> <constante 2>: <acción 2&g… Read More

0 comentarios:

Publicar un comentario

Etiquetas actuales

BD (67) DEF (64) PROG (64) SQL (44) Java (29) PRACTICAS (20) php (18) DI (16) PRESTASHOP (16) PROGRAMACIÓN WEB (16) HTML (13) SGE (12) ERP (9) CONSULTAS (8) css (8) Linux (5) XML (5) Android (4) PDM (4) C (3) NetBeans (3) PSP (3) SMARTY (3) comandos (3) HOOK (2) POST (2) XSD (2) cURL (2) JS (1) MEDIA-QUERYS (1) PDO (1) RESPONSIVE (1) TPL (1) TRADUCCIÓN (1) app_inventor (1)

Todas las etiquetas

EJER (78) BD (67) DEF (64) PROG (64) SQL (44) c# (40) Programación (39) Ficheros (36) Java (29) bases de datos (21) PRACTICAS (20) lenguajes de marcas (19) AD (18) Entorno de desarrollo (18) php (18) PROCEDIMIENTOS (17) DI (16) FORM (16) PRESTASHOP (16) PROGRAMACIÓN WEB (16) lenguaje C (16) E/R (14) HTML (13) SGE (12) Sistemas informáticos (10) ERP (9) CONSULTAS (8) TRANSACCIONES (8) TRIGGER (8) VISUAL BASIC (8) css (8) FUNCIONES (7) html5 (6) Ada (5) EXAMEN (5) Linux (5) XML (5) estructuras (5) Android (4) DISEÑO (4) INTERFAZ (4) LOG (4) OpenBravo (4) PDM (4) ACTUALIZAR (3) C (3) DIAGRAMA (3) Directorios (3) NEW (3) NOR (3) NetBeans (3) OLD (3) PSP (3) SMARTY (3) comandos (3) css3 (3) AISLAMIENTOS (2) C++ (2) CONTROLERRORES (2) ELIMINAR (2) HOOK (2) INSERTAR (2) INST (2) MULTITABLA (2) POST (2) RECURSIVIDAD (2) SUBCONSULTAS (2) VISTAS (2) XSD (2) cURL (2) punteros (2) AJENA (1) BLOQUEOS (1) Byte (1) CREACION (1) CRM (1) Configuración (1) Controles (1) Datos (1) GOTFOCUS (1) IMAGENES (1) INDICES (1) JS (1) Lenght (1) MEDIA-QUERYS (1) Mingw (1) MonoDeveloped (1) OPTIMISTA (1) PDO (1) PESIMISTA (1) RESPONSIVE (1) SPEAK (1) Scanner (1) Serializacion (1) Streams (1) System (1) TPL (1) TRADUCCIÓN (1) USUARIOS (1) UseSystemPasswordChar (1) app_inventor (1) char (1) examenes (1) libreoffice (1) make (1) redes (1)