Tutoriales

Calculadora en Python
Tutoriales Python. Calculadora

Siguiendo con nuestros tutoriales de Python, vamos a realizar un programa que  ejecuté las operaciones básicas de una calculadora,  empezaremos por crear una función que muestre las opciones de la calculadora esa función se llama menú general en la cual lo único que utilizamos es el comando PRINT.  ese menú será llamado desde la función calculadora propiamente dicha.

La función calculadora lo primero que realiza es la presentación del menú general y nos pide que elijamos una opción. A través de un bucle while,  haremos que pueda realizar más de una operación antes de salir del programa de ahí que la condición sea repetir mientras sea mayor que 0, y menor que 5.   Y a través de bucles if (podríamos utilizar un switch case) resolvemos el tipo de operación que quiere realizar el usuario.

las operaciones que realizamos son sobre números enteros, en el caso de la división el resultado puede contener decimales, utilizamos un  casting para convertir en float el resultado de la división y además formateamos la salida para que muestre solo dos decimales.

En el siguiente enlace podrás ver el código completo y además ejecutar el programa para comprobar su funcionamiento.

 

Código

 


Tutorial Python

Resolución de una ecuación de segundo grado

A continuación y siguiendo con nuestros tutoriales de Python implementamos una función llamada "ecuacion()", que recibe tres parámetros(a,b,c) de la ecuación de 2º grado aX^2+bX+c=0, y calcula las posibles soluciones.
La ultima linea de código, es la llamada a la función.
Veamos el Código:

def ecuacion(a, b, c):
import math #importamos la libreria de funciones matemáticas
disc = (math.pow(b, 2)) - (4 * a * c) # pow funcion "elevado a" , b al cuadrado
if disc > 0:
x1 = (-b + math.sqrt(disc)) / (2 / a) #sqr : raiz cuadrada
x2 = (-b - math.sqrt(disc)) / (2 / a)
print "\n\nLa ecacuacion tiene dos posibles soluciones: x1 = %.2f y x2 = %.2f" % (x1, x2)
else:
if disc == 0:
x1 = -b / (2 * a)
print "\n\nLa ecuacion tiene una posible solucion: x = %.2f" % (x1)
else:
xr = -b / (2 * a)
xi = (math.sqrt(-disc)) / (2 * a)
print "\n\nLa ecuacion tiene dos posibles soluciones, una real xr = %.2f y una imaginarinaria xi = %.2fi" % (xr, xi)print "Solucionador de ecuaciones de segundo grado"
print "_" * 43
a = raw_input("\tEscriba el valor de a: ")
while a == 0:
a = raw_input("\tEl valor de a no puede ser 0, por favor corrijalo: ")
b = raw_input("\tEscriba el valor de b: ") #raw_input almacena como string lo tecleado
c = raw_input("\tEscriba el valor de c: ")a = float(a) #El string se convierte en float
b = float(b)
c = float(c)

ecuacion(a, b, c)

Para poder probar el codigo, en el enlace suiguiente accedes a un compilador online de Python:
Ejecutar programa


Tutorial gratis de Python 1

Python es un lenguaje de programación fácil de aprender y potente. Tiene estructuras de datos eficientes de alto nivel y un enfoque simple pero efectivo para la programación orientada a objetos. La elegante sintaxis y la tipificación dinámica de Python, junto con su naturaleza interpretada, lo convierten en un lenguaje ideal para el desarrollo de scripts y aplicaciones rápidas en muchas áreas de la mayoría de las plataformas.

El intérprete de Python y la amplia biblioteca estándar están disponibles gratuitamente en forma de código fuente o binario para todas las plataformas principales desde el sitio Web de Python,https://www.python.org/ , y pueden distribuirse libremente.

A lo largo de una serie de tutoriales vamos a explicar este interesante lenguaje, con ejercicios que podrás ejecutar desde la misma web, utilizando u IDE online


ArrayList Java PROO II UVIGO

DECLARACIÓN Y CREACIÓN DE UN ARRAYLIST

De forma general un ArrayList en Java se crea de la siguiente forma:

ArrayList nombre = new ArrayList();

Esta instrucción crea el ArrayList nombre vacío.

Un arrayList declarado así puede contener objetos de cualquier tipo.

Por ejemplo:

ArrayList a = new ArrayList();

a.add("Seat");

a.add(3);

a.add('a');

a.add(99.5);

Los elementos del arrayList a son:
“Seat”  2  ‘a’   99.5

Es decir, un ArrayList puede contener objetos de tipos distintos.

En este ejemplo, el primer objeto que se añade es el String “Seat”. El resto no son objetos.

Un array al que se le pueden asignar elementos de distinto puede tener alguna complicación a la hora de trabajar con él. Por eso, una alternativa a esta declaración es indicar el tipo de objetos que contiene. En este caso, el array solo podrá contener objetos de ese tipo.

De forma general:

ArrayList<tipo> nombre = new ArrayList<tipo>();

tipo debe ser una clase. Indica el tipo de objetos que contendrá el array.

No se pueden usar tipos primitivos. Para un tipo primitivo se debe utilizar su clase envolvente.

Por ejemplo:

ArrayList<String> numeros = new ArrayList<String>();

Crea el array de cadenas de Caracteres.

MÉTODOS MÁS HABITUALES DE LA CLASE ARRAYLIST

Algunos métodos que proporciona ArrayList son:

MÉTODO DESCRIPCIÓN
size() Devuelve el número de elementos (int)
add(X) Añade el objeto X al final. Devuelve true.
add(posición, X) Inserta el objeto X en la posición indicada.
get(posicion) Devuelve el elemento que está en la posición indicada.
remove(posicion) Elimina el elemento que se encuentra en la posición indicada. Devuelve el elemento eliminado.
remove(X) Elimina la primera ocurrencia del objeto X. Devuelve true si el elemento está en la lista.
clear() Elimina todos los elementos.
set(posición, X) Sustituye el elemento que se encuentra en la posición indicada por el objeto X. Devuelve el elemento sustituido.
contains(X) Comprueba si la colección contiene al objeto X. Devuelve true o false.
indexOf(X) Devuelve la posición del objeto X. Si no existe devuelve -1

Ejemplo Sencillo de ArrayList

 


Crear un tema hijo en Wordpress

Wordpress recomienda la creación de un tema hijo cuando vamos a realizar cambios en el tema que hemos escogido. Tanto si estos cambios son de aspecto solamente (CSS) o bien de funciones, etc.

Lo primero que debemos hacer para crea un tema hijo es acceder a nuestra carpeta:

wp-content -> themes

y crear una carpeta nueva que nombraremos como nuestro estilo. Los nombres han de ser sin espacios. (wordpress recomienda poner el nombre del tema y añadir la palabra “child” separados por un guión).

 

Dentro de esta carpeta debemos crear un archivo llamado “style.css”, el nombre es importante, ha de tener este nombre y no otro. Y es el único archivo requerido para crear un tema hijo.

 

Dentro de ese archivo style.css ha de añadirse el siguiente texto al principio:

/*

Theme Name:   Twenty Sixteen Child

Theme URI:    http://example.com/twenty-sixteen-child/

Description:  Delta PC Theme

Author:       DeltaPc

Author URI:   http://deltapci.com

Template:     twentysixteen

Version:      1.0.0

License:

License URI:

Tags:         light, dark, two-columns, right-sidebar, responsive-layout, accessibility-ready

Text Domain:  twenty-sixteen-child

*/

Theme Name: será el nombre de nuestro tema.

Template: será el que tengamos en nuestra página. Esto sirve para que salvo que le digamos lo contrario, opte por los estilos del tema padre.

 

El resto de los parámetros dependerán de cada uno.

 

Una vez guardado, podrás comprobar en tu escritorio apariencia->temas, que ya aparece nuestro tema para poder escoger.

Si quieres hacerlo más bonito, has de crear una captura de pantalla para poner como “imagen” para el tema. Eso se consigue guardando en esa misma carpeta del tema un archivo  screenshot.png. (WordPress recomienda que la imagen tenga un tamaño de 1200×900, aun que sólo se mostrarán 387×290. También nos advierte que aun que otras extensiones como .jpg, .gif, etc son válidas, no son recomendadas.)

Y ya aparecerá la imagen en apariencia->temas

 

Añadir archivo functions.php

Este archivo lo necesitaremos si queremos que muestre los estilos del tema padre también (si no lo ponemos, tendremos que darle todos los estilos nosotros.

Además, si ya has intentado modificar alguna característica de wordpress, habrás encontrado en google muchas respuestas en las que si no es un plugin, te indican que modifiques o añadas alguna función en el archivo functions.php de tu tema.

Si modificamos este archivo, corremos el riesgo que en caso de actualización bien del tema, bien de wordpress se pierdan. Para ello está también el tema hijo. Si añadimos un archivo llamado “functions.php”  escribiremos ahí nuestras modificaciones y se aplicarán igual que los estilos.

En realidad, wordpress leerá prioritariamente las funciones del archivo del tema hijo, y después las del tema padre.

Creamos el archivo y la primera función que añadimos, es la llamada a los estilos del tema padre.

<?php

function my_theme_enqueue_styles() {

     $parent_style = 'parent-style'; 

     wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );

     wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array( $parent_style ), wp_get_theme()->get('Version'));

     }

     add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );

?>


Documentación:

Enlaces al codex de wordpress.

https://codex.wordpress.org/es:Temas_hijos

https://codex.wordpress.org/Child_Themes


Hacer un objeto piano descargable en Scratch

Esta práctica sirve de continuación a la práctica de como crear un piano básico. Los niños aprenderán a trabajar con los disfraces de un objeto y como guardar ese objeto para reutilizar en otros programas.

https://scratch.mit.edu/projects/140270000/

Puedes descargarte el pdf aquí.

Puedes descargarte la solución aquí.

Piano básico 2

Ya has creado un piano, pero un piano es sólo parte de una orquesta. Y si para un piano básico hemos necesitado 4 objetos, imagínate para un piano grande.

En esta práctica vas a hacer un piano un poco más complicado. Al finalizar aprenderás como guardar ese objeto y después lo podrás utilizar en cualquier otro juego que quieras.

 

Así que empecemos.

 

¿Qué vas a necesitar?

Podrías pensar que necesitarías crear los objetos como habías hecho en el otro piano, pero no. Esta vez vamos a escoger un objeto que ya tiene scratch.

 

1º. Debes eliminar el gato. No lo vamos a necesitar.

2º. Vas a añadir un objeto nuevo. Añadir, no dibujar, por lo que tendremos que hacer clic en “Selecciona un objeto de la biblioteca”.

Has de buscar dentro de “TEMA” el de “MUSIC” y seleccionar el “piano-electric”. Fíjate como te indica que tienes 4 disfraces. Dale al botón ok, y verás como aparece en tu pantalla.

 

 

Una vez tengamos el piano. Vamos a crear los disfraces que necesitamos para que se muestre correctamente.

Para ello:

a) Duplicamos el primer disfraz, en el que no aparece ninguna tecla amarilla.

b) Una vez duplicado, utilizamos el bote de pintura para rellenar una de las teclas de color amarillo.

Fíjate que cuando acercas el bote de pintura a una zona del piano, este se colorea, sólo queda hacer clic para que quede así marcado.

¿Cuántas teclas tiene ese piano? Pues tendremos que ponerle un disfraz amarillo a cada una, siguiendo los pasos anteriores.

Al final tendremos un total de 15 disfraces. Uno con todas las teclas en blanco y 14 con 1 en amarillo. (Piensa que aún nos quedan las teclas negras, pero en esta práctica llega con las blancas).

 

¿Cómo lo programamos?

Este apartado deberías saber hacerlo tú sólo. Intenta recordar como hiciste el piano en la práctica anterior.

  1. Recuerda que debes seleccionar el evento necesario (al pulsar tecla “…..”)
  2. Puedes copiar código de un evento a otro simplemente con el primer botón que tienes en la barra superior.
  3. Al finalizar deberás tener 14 bloques en los que suene una nota y se cambie el disfraz cada vez que se pulse una tecla del teclado.

Nos falta un pequeño detalle, y es asegurarnos que cuando vaya a comenzar nuestro programa se muestre el piano, tal cual, con todas las teclas en blanco.

¿Qué es nuevo?

Hasta aquí no deberías haber tenido problema.

Ahora lo que vamos a hacer es utilizar nuestro piano en el próximo ejercicio. En lugar de tener que hacerlo todo de nuevo. Lo que Scratch nos permite es descargarnos ese objeto, con sus disfraces y su programación.

Para ello, tenemos que hacer clic con el botón izquierdo del ratón sobre el objeto y darle a “guardar a un archivo local”. Lo guardas en tu carpeta.

Para que compruebes su funcionamiento. Prueba a empezar un nuevo proyecto. Y donde pone haz clic y seleccionar el piano que acabas de guardar.

 

Podrás comprobar como tiene toda la programación que has creado.

 

 


Uso de throw en java PROII UVIGO
  • palabra clave throw se utiliza para lanzar una excepción manualmente.
  • Tenemos que manejar estas excepciones también utilizando los bloques try catch.
  • El flujo de la ejecución se detiene inmediatamente después de la sentencia throw, y nunca se llega a la sentencia siguiente.
  • Cuando se define un método debe incluir una cláusula throws a declarar dichas excepciones que podrían ser lanzados, pero no se ven atrapados en el método.
  • Si un método está utilizando cláusula throws junto con pocas excepciones, entonces esto indica implícitamente que otros métodos - "Si me llamas, debe gestionar estas excepciones que tirar".

throws

Si un método es capaz de provocar una excepción que no maneja él mismo, debería especificar este comportamiento, para que todos los métodos que lo llamen puedan colocar protecciones frente a esa excepción.

  • La palabra clave throws se utiliza para identificar la lista posible de excepciones que un método puede lanzar.
  • Para la mayoría de las subclase de la clase Exception, el compilador Java obliga a declarar qué tipos podrá lanzar un método.

En el ejemplo siguiente, el programa intenta lanzar una excepción sin tener código para capturarla, y tampoco utiliza throws para declarar que se lanza esta excepción. Por tanto, el código no será posible compilarlo.

class ejemploThrows {
static void metodo1() {
System.out.println( "Capturada la excepcion en metodo1" );
throw new IllegalAccessException( "demo" );
}
}

public static void main( String args[] ) {
metodo1();
}

Para hacer que este código se compile, se realizan los siguientes cambios:

  1. Se declara que el método puede lanzar una excepción de acceso ilegal, con lo que el problema asciende un nivel más en la jerarquía de llamadas.
  2. main() llama a metodo1(), que se ha declarado que lanza una IllegalAccessException, por lo tanto colocamos un bloque try que pueda capturar esa excepción.

Probar Código

class ejemploThrows {
static void metodo1() throws IllegalAccessException {
System.out.println( "Dentro de metodo1()" );
throw new IllegalAccessException( "demo" );
}

public static void main( String args[] ) {
try {
metodo1();
} catch( IllegalAccessException e ) {
System.out.println( "Capturada la excepcion: " + e );
}
}
}


Clase String Java PRO II UVIGO

En Java no existe un tipo de datos primitivo que sirva para la manipulación de cadenas de caracteres. En su lugar se utiliza una clase definida en el API que es la clase String. Esto significa que en Java las cadenas de caracteres son, a todos los efectos, objetos que se manipulan como tales, aunque existen ciertas operaciones, como la creación de Strings, para los que el lenguaje tiene soporte directo, con lo que se simplifican algunas operaciones.

La clase String forma parte del package java.lang

Un String puede crearse como se crea cualquier otro objeto de cualquier clase; mediante el operador new:

String s = new String("Esto es una cadena de caracteres");

Los literales de cadena de caracteres se indican entre comillas dobles ("), a diferencia de los caracteres, que utilizan comillas simples (').

Sin embargo también es posible crear un String directamente, sin usar el operador new, haciendo una asignación simple (como si se tratara de un dato primitivo):

String s = "Esto es una cadena de caracteres";

Ambas expresiones conducen al mismo objeto.

Los Strings no se modifican una vez que se les ha asignado valor. Si se produce una reasignación se crea un nuevo objeto String con el nuevo contenido.

Además la clase String proporciona constructores para crear Strings a partir de arrays de caracteres y arrays de bytes.

Ejemplo Ver Código


Hacer un piano en Scratch

En este tutorial básico se explica como realizar un pequeño piano. Servirá para familiarizarse con la duplicación de objetos, la copia de bloques de un objeto a otro, así como el concepto de disfraces.

https://scratch.mit.edu/projects/136978593/

 

Puedes descargarte el pdf aquí.

Y el código solución aquí.

Piano Básico

Vamos a hacer un pequeño piano de tan sólo cuatro teclas que funcione con las flechas del teclado. Así cuando pulsemos una de las flechas, cambiará el color de la tecla y sonará una nota.

1. Piano básico

2. Piano sonando

 

¿Qué necesitamos?

1. Un objeto por cada tecla.

2. Dos disfraces por cada objeto.

 

¿Cómo lo hacemos?

Crear los objetos “TECLAS”

Vamos a crear nuestras propias teclas. Para ello vamos a tener que dibujarlas. Tenemos 2 opciones para este trabajo.

Opción A: (vamos a realizar esta opción con 2 de las teclas)

1º. Creamos un nuevo objeto que dibujaremos nosotros mismos.

2º. La manera más cómoda es utilizar la herramienta rectángulo. Haces uno con el borde en negro, y otro más pequeño dentro con relleno en blanco. Fíjate donde se escoge si quieres pintar el borde o el relleno.

También puedes cambiar el nombre de ese “disfraz” que por defecto se muestra como “disfraz1”.

Ahora haz clic con el botón secundario en la miniatura que tienes a la izquierda del área de dibujo. Y dale a “duplicar”. Así el siguiente disfraz tendrá el mismo tamaño. Pinta de gris clarito esta otra tecla.

3º. Ahora tendremos que duplicar nuestro objeto completo, con sus dos disfraces. Haremos clic con el botón secundario del ratón, encima del objeto.

 

4º. Ves que nos sobra el gato que aparece por defecto, por lo que lo eliminaremos. Puedes hacerlo de varias maneras, pero ahora lo haremos con el botón secundario sobre él, y diciéndole “borrar”.

5º. Una vez tengas los dos objetos “teclas” tendremos que empezar a programarlas.

 

Programar las TECLAS.

  • Queremos que cuando pulsemos una tecla del teclado suene una nota musical. También queremos que cambie la apariencia, es decir, que cambie el color de la tecla para indicar que está sonando. Intenta hacerlo tú sólo.
    1. Tendrás que buscar dentro de los bloque Eventos el bloque que indica que algo ha de comenzar cuando pulsamos una tecla del teclado.
    2. También vas a necesitar un bloque de Sonido, este puede ser un poco complicado de encontrar. Será el siguiente bloque:
    3. Ahora sólo nos falta hacer que cambie el disfraz. Recuerda como les has llamado. Por ejemplo, “difraz1” cuando se ve blanca, es decir, como si no estuviera pulsado en el piano, y la gris cuando se está pulsando, está sonando el piano.
  • Cuando tengas el programa de la primera tecla finalizado, lo único que tendrás que hacer es arrastrar ese programa encima de la otra tecla.

 

  • Dentro del segundo objeto tendremos que hacer un par de modificaciones. ¿Sabes cuales?
  • Para hacer las otras dos teclas, lo único que nos hace falta, es duplicar los objetos que ya tenemos. Esto los duplicará con los bloques y sus disfraces. Sólo tendremos que repetir las modificaciones del paso 3.
  • Ahora que ya tienes todo, confirma que el teclado funciona correctamente.

 

 


Enumerados en java PRO II UVIGO

Un enum,  tipo enumerado, es un tipo de dato definido por el usuario que solo puede tomar como valores los definidos en una lista.

[modificadores] enum nombreEnum {VALOR1, VALOR2, VALOR3, ...}
modificadores (opcional) puede ser public, private, protected además de static.
enum es la palabra reservada para definir enumeraciones en Java.
nombreEnum es el nombre del nuevo tipo creado.
VALOR1, VALOR2, ... son los valores que pueden tomar las variables que se declaren de este tipo.
Se pueden declarar enumeraciones dentro o fuera de una clase pero nunca dentro de un método.
public class Enum1{
public enum Dia {LUNES, MARTES, MIERCOLES, JUEVES, VIERNES, SABADO, DOMINGO}
public static void main(String []args){
Dia d; // declaramos una variable del tipo Dia
d = Dia.DOMINGO; //asignamos un valor
if (d == Dia.DOMINGO || d == Dia.SABADO) //comparamos valores
System.out.println("Estamos en fin de semana <if>");
else
System.out.println("Aun no ha llegado el fin de semana <else>");
d=Dia.VIERNES;
switch (d) { //ejemplo de switch
case LUNES:
case MARTES:
case MIERCOLES:
case JUEVES:
case VIERNES:
System.out.println("Aun no ha llegado el fin de semana <switch>");
break;
default:
System.out.println("Estamos en fin de semana");
}
}
}
En Java, los tipos enumerados se pueden definir fuera o dentro de una clase. Otra ventaja que traen los tipos enum de Java es que al ser una “especie de clase” podemos añadirles métodos, variables de instancia, constructores, etc… lo que los hace muy potentes.
/*
* Un tipo enumerado tiene sus propios metodos y constructor
*/
enum Vaso {
// Tipos de vaso disponibles. Pasan al constructor su capacidad en cc.
MAXI(500), TUBO(250), TERCIO(333), CANHA(200);
private int cc; // Variable interna donde almacenaremos la capacidad
// Nuestro constructor nos fuerza a pasar parametros al definir un nuevo tipo
Vaso(int cc) {
this.cc = cc;
}
// Devuelve la capacidad del vaso
public int getCentimetrosCubicos() {
return cc;
}
}
/*
* Definimos un tipo de bebida
*/
class BebidaCerveza {
enum MarcaCerveza {EstrellaGalicia, SanMiguel, Heineken} // Tipos enumerados sencillos. Solo tenemos estas marcas
private Vaso vaso;
private MarcaCerveza marca;
BebidaCerveza(MarcaCerveza marca, Vaso vaso) {
this.marca = marca;
this.vaso = vaso;
}
public void servir() {
System.out.println("Sirviendo " + vaso.getCentimetrosCubicos() + "cc. de cerveza " + marca);
}
}
/*
* Clase publica que prueba todo esto
*/
public class Enum2 {
public static void main(String[] args) {
BebidaCerveza birra = new BebidaCerveza(BebidaCerveza.MarcaCerveza.EstrellaGalicia, Vaso.MAXI);
birra.servir();
}
}

Crear nuestras propias excepciones Java PRO II UVIGO

Aunque Java proporciona una gran cantidad de excepciones, en algunas ocasiones necesitaremos crear excepciones propias.

import java.util.*;
public class Ejemplo1{

public static void main(String []args){
try {
int x=3;
System.out.println("Esto se sejecuta siempre");
if (x<4){
throw new Exception("Lanzo la Excepcion");
}
} catch(Exception e) {
System.out.println("Se produjo un excepcion: " + e.getMessage());
} finally {
System.out.println("Esto se ejecuta sin importar si se presentan errores");
}
}
}

Probar Código


Ejercicio de PRO II

1.- ¿Cuál es el resultado del siguiente programa?

class Programa1 {

public static void main(String [ ] args){

Clasex1 obj1=new Clasex1();

obj1.imprimir(4);

}

}

class Clasex1 {

int prop1=10,prop2=4;

public void imprimir(int i){

prop1=prop1+i;

prop2=prop2+i;

System.out.print(prop1+" "+prop2+" ");

}

}


Estructuras y Array de estructuras. Pro I UVIGO

En el siguiente ejercicio incorpora una función que permita calcular la longitud de la linea.

#include <stdio.h>
#include <stdlib.h>
typedef struct {
int x;
int y;
} punto;
void pedirlinea(punto l[]);
void mostrarlineaa(punto l[]);
int main()
{
punto linea[2];
linea[0].x=10;
linea[0].y=2;
linea[1].x=20;
linea[1].y=20;
mostrarlineaa(linea);
pedirlinea(linea);
mostrarlineaa(linea);
return 0;
}
void pedirlinea(punto l[]){
int i;
for (i=0;i<2;i++){
printf("\ncoordenada x del punto %d de la linea ", i+1);
scanf("%d",&l[i].x);
printf("\ncoordenada y del punto %d de la linea", i+1);
scanf("%d",&l[i].y);
}
}
void mostrarlineaa(punto l[]){
int i;
for (i=0;i<2;i++){
printf("\ncoordenada x del punto %d de la linea es %d ", i+1, l[i].x);
printf("\ncoordenada y del punto %d de la linea es %d ", i+1, l[i].y);

}
}


Array como argumento de Funciones. Informática proI UVIGO

#include <stdio.h>
#include <stdlib.h>
void llenararray(int a1[], int x);
int main()
{
int a1[10],i;
llenararray(a1,10);
printf("numero de elementos del array: %d\n", ( sizeof(a1) / sizeof(a1[0]) ));
for (i=0;i<10;i++){
printf("%d ",a1[i]);
}
return 0;
}
void llenararray(int a1[], int x){
int i;
for (i=0;i<10;i++){
a1[i]=i+22*i;
}
// en la siguiente linea vemos com la misma función que en el main y la respuesta es diferente
printf("tamanho de una posicion del array: %d\n", ( sizeof(a1) / sizeof(a1[0]) ));
}


Ejercicio de funciones en c Informática UVIGO

Ejercicio de funciones. Solicitar dos números por teclado, y usando una función, que nos devuelva la media aritmética.

Ver compilación online.

#include <stdio.h>
/* Ejemplo con función sencilla pasamos dos variables a la función */
int main()
{

float media(float X, float Y);
/* Variables locales */
float A,B;

printf("Introduce dos numeros : ");
scanf("%f %f", &A, &B);
printf("La media aritmetica de %.2f et %.2f es %.4f\n",A, B, media(A,B));
return 0;
}

float media(float X, float Y)
{
return (X+Y)/2;
}

 


Ejemplos PRO I UVIGO

Visualización de números enteros, Octal , Hexadecimal...

Formas de Ajustar la salida printf según formato.

Compilación

#include <stdio.h>

int main()
{
int entero = 1234;
int enteroNeg = -1234;
float real = 234.567;
char letra = 'E';
int contador;

printf("El número entero vale %d en notación decimal,\n", entero);
printf(" y %o en notación octal,\n", entero);
printf(" y %x en notación hexadecimal,\n", entero);
printf(" y %X en notación hexadecimal en mayúsculas,\n", entero);
printf(" y %ld si le hacemos que crea que es entero largo,\n", entero);
printf(" y %10d si obligamos a una cierta anchura,\n", entero);
printf(" y %-10d si ajustamos a la izquierda.\n", entero);
printf("El entero negativo vale %d\n", enteroNeg);
printf(" y podemos hacer que crea que es positivo: %u (incorrecto).\n",
enteroNeg);
printf("El número real vale %f en notación normal\n", real);
printf(" y %5.2f si limitamos a dos decimales,\n", real);
printf(" y %e en notación científica (exponencial).\n", real);
printf("La letra es %c y un texto es %s.\n", letra, "Hola");
printf(" Podemos poner \"tanto por ciento\": 50%%.\n");

return 0;
}

 


Ejercicios Escuela Informática UVIGO III

Practica 4 Ejercicio 3

Comprobar código 

#include <stdio.h>

//Practica 4 Ejercicio 3. Codificar un algoritmo que solicite un número entero N y calcule los N primeros términos
//de la serie de Fibonacci, y los muestre por pantalla.

int main()
{
int n;
printf("Dame un numero\n");
scanf("%d",&n);
int i, p=0,s=1,u;
for (i=1;i<n;i++){
u=s+p;
p=s;
s=u;
printf("%d\n",u);
}
return 0;

}


Ejercicios Escuela Informática UVIGO

Práctica 2 Ejercicio 4

Crear un nuevo proyecto con un programa que calcule el perímetro y el área de una circunferencia a partir de su radio, que debe ser un dato que se pida al usuario. Para ello, definir una constante en el programa para el valor de PI, y variables de tipo real para recoger
el valor del radio, calcular el perímetro y el área. Comprobar que funciona. ¿Qué ocurre si se cambia el tipo de las variables para el perímetro y el área por int ?

Pruebalo en un compilador online

#include <stdio.h>

int main()
{
const float pi=3.14;
float radio, perimetro, area;
printf("Introduce el Radio de la Circunferencia: ");
scanf("%f",&radio);
perimetro=2*pi*radio;
area=pi*radio*radio;
printf("El perímetro es: %3.3f\n", perimetro);
printf("El Area del círculo es: %3.2f\n",area);

return 0;
}

%3.2f se indica para el número de decimales.

Se prodría poner %f

Si cambiamos perimetro y area tipo integer no funciona


Ejercicio PRO I Informática uvigo

Práctica 4 Ejercicio 10. Calcular el mayor y el menor de una serie de números introducidos por teclado. Solución pidiendo un número por lo menos. Modificar el programa para que pregunte si no quiero introducir números.

#include <stdio.h>
/* Práctica 4 Ejercicio 10. Calcular el mayor y el menor de una serie de numeros introducidos por teclado.
*/
int main()
{
int mayor, menor;
int x;
printf("dame el primer numero\n");
scanf("%d",&x);

menor=x; //Variable para almacenar el mayor. Inicialmente el primero tecleado
mayor=x; //Variable para almacenar el menor. Inicialmente el primero tecleado

do{
printf("dame otro numero o cero para terminar\n");
scanf("%d",&x);
if (x>mayor && x!=0){

//Comprobar si el introducido es menor que el menor del los introducidos hasta ahora y es distinto de //cero
mayor=x;
}
if(x<menor && x!=0){

//Comprobar si el introducido es menor que el menor del los introducidos hasta ahora y es distinto de //cero
menor=x;
}
}
while (x!=0);
printf("El mayor es :%d \n",mayor);
printf("El menor es :%d \n",menor);
return 0;
}


Ejercicios Escuela Informática UVIGO II

Práctica 3 Ejercicio 6

Escribir un programa que solicite un carácter y dos números reales al usuario.
● Si el carácter es “ + ”, el programa devolverá la suma de los dos números introducidos...........

Solución: Ver en Compilador online

#include <stdio.h>

int main()
{
float a,b;
char c;
printf("Que operación quieres realizar\n");
scanf("%c",&c);
while (!(c=='+'||c=='-'||c=='*'||c=='/'))
{
printf("Operacion no valida");
scanf("%c",&c);
}
getchar();
printf("Dame un número \n");
scanf(" %f",&a);
printf("Dame el otro número \n");
scanf("%f",&b);
switch (c){
case '+':
printf("La suma es %f \n",a+b);
case '-':
printf("La resta es %f \n",a-b);

case '*':
printf("La multiplicación es %f \n",a*b);

case '/':
{
if (b!=0)
printf("La division es %f \n",a/b);
else
printf( "La division no puede realizarse\n");
}
}
return 0;
}


Genericos en java

¿Por qué utilizar los genéricos?

En pocas palabras, los genéricos permiten tipos (clases e interfaces) para ser definidos como los parámetros de clases, interfaces y métodos.

Al igual que los parámetros formales  utilizados en las declaraciones del método, los parámetros de tipo proporcionan una forma para que se pueda volver a utilizar el mismo código con diferentes entradas.

La diferencia es que las entradas a los parámetros formales son los valores, mientras que las entradas para escribir parámetros son tipos.

Los nombres de los parámetros tipo más comúnmente utilizados son:

  • E - Elemento (muy utilizada por la Java Collections Framework)
  • K - Key
  • N - Número
  • T - Tipo
  • V - Valor

package genericos3;

public class Visualizar <T>{

private T objeto;

public Visualizar(T objeto) {

this.objeto = objeto;

}

public void setObjeto(T objeto) {

this.objeto = objeto;

}

public T getObjeto() {

return objeto;

}

public void imprimir() {

System.out.println(objeto.toString());

}

public void imprimir_reves() {

StringBuffer sb = new StringBuffer(objeto.toString());

System.out.println(sb.reverse());

}

}

package genericos3;

public class Genericos3 {

public static void main(String[] args) {

Visualizar <String> impStr = new Visualizar<String>("Hola Alumnos del Mundo");

impStr.imprimir();

Visualizar <Integer> impInt = new Visualizar<Integer>(143);

impInt.imprimir_reves();

}

}


Clases de apoyo Ciclos Informática y Universidad

clasesParticulares

Con profesorado especializado y con años de experiencia.

Preparación de ciclos formativos.

Flexibilidad de horarios.

Prepárate a tú ritmo con clases personalizadas. También disponemos de grupos.

Ponte en contacto con nosotros para cualquier duda.