Este documento describe diferentes fenómenos ondulatorios como la reflexión, refracción, interferencia y difracción. Explica que las ondas son perturbaciones que transmiten energía a través de un medio sin necesidad de desplazar materia. Define la reflexión como cuando una onda choca con un obstáculo y cambia su dirección, la refracción como cuando una onda cambia su velocidad al pasar de un medio a otro, la interferencia como cuando dos o más ondas inciden en un mismo medio, y la difracción como cuando una onda bordea un obstáculo
Este documento describe los compromisos de gestión escolar centrados en los aprendizajes que deben implementarse en las instituciones educativas. Explica que existen 8 compromisos agrupados en compromisos de resultado, proceso y planeamiento. Detalla cada compromiso e indica cómo medirlos e implementarlos, incluyendo el análisis de datos sobre logros de aprendizaje, la consolidación de información y la planificación participativa. El objetivo es que las instituciones mejoren los resultados educativos mediante el seguimiento de estas metas de gestión orientadas
Presentacion hsa region del libertador bernardo o`higginsvidasindical
Este documento resume los problemas que enfrentan los funcionarios honorarios de las plantas faenadoras de exportación en la región de O'Higgins, Chile. Estos trabajadores carecen de soluciones a sus solicitudes, enfrentan horarios de trabajo difíciles y dependencia de las empresas. También tienen problemas para solicitar permisos y cambios de trabajo. Además, los valores pagados por hora a los funcionarios del Servicio Agrícola y Ganadero son mucho menores que los cobrados a las plantas. Finalmente, el documento pide que se reconozca a los funcion
El documento describe las funciones de un servicio técnico, incluyendo recibir clientes, escribir órdenes de servicio, realizar reparaciones, y entregar artículos reparados. Actualmente, el software utilizado es obsoleto y no puede almacenar toda la información necesaria, lo que causa problemas como la pérdida de datos y tiempo ineficiente. La solución propuesta es implementar un nuevo sistema centralizado que pueda almacenar todos los datos requeridos de manera digital para mejorar la eficiencia.
[VISITA: http://ymedicinanatural.com/pielblanca/ ] Las principales causas de las manchas marrones y el oscurecimiento del piel
Pigmentación de la piel, Crema para aclarar la piel, Crema para blanquear la piel, Manchas de envejecimiento en la piel, Manchas en la cara, Eliminar manchas de envejecimiento Crema para piel negra, Emparejar el tono de la piel, Píldoras para aclarar la piel, Píldora blanqueadora, Despigmentante natural de la piel
USTED DESCUBRIRÁ...
Cómo blanquear su piel naturalmente, con seguridad, y en la comodidad
de su hogar, con resultados eficaces.
La manera más fácil de blanquear las pigmentaciones de su piel, pecas,
manchas de la edad, marcas de acné, axilas oscuras, melasma o el color
de su piel en general.
Cómo hacer sus propias cremas para blanquear la piel por monedas! Las mismas cremas que se venden por cientos de dólares en los salones de belleza!
Poderosos ingredientes para blanquear la piel que pueden adquirirse a bajo
precio en cualquier tienda de comestibles.
Por qué el color de la piel cambia constantemente por sí sola y cómo puede aprovechar esta información para lograr una piel hermosa y de color uniforme!
Cómo prevenir la decoloración y el oscurecimiento de la piel,
y que aparezcan manchas irregulares.
Productos populares que afirman aclarar su piel pero son un peligro para
su salud y están prohibidos en la mayoría de los países de Europa,
como también América del Norte.
Qué productos aclararán continuamente su piel con el tiempo y cuales
la oscurecerán, haciendo que su problema sea aún peor!
Cómo aumentar varias veces la eficacia de cualquier producto para blanquear
la piel, con un método sencillo pero eficaz.
Qué dietas juegan un papel importante en el blanqueamiento de su piel
y cuales oscurecen su piel aún más.
Y… mucho más!
VISITA AHORA MISMO: [ http://ymedicinanatural.com/pielblanca/ ]
El documento describe las causas y consecuencias de la crisis financiera ecuatoriana de finales de los años 90 y principios de los 2000. Menciona que la crisis se debió a una mala regulación y falta de supervisión que permitió préstamos fraudulentos y quiebras bancarias, lo que afectó a miles de depositantes y llevó a una recesión económica en el país. También analiza la historia del sistema financiero ecuatoriano y las leyes que lo regulaban.
El documento instruye al lector sobre cómo completar una tarea de computación en Word. Incluye instrucciones para transcribir un artículo, aplicar formatos como márgenes, estilos de texto y diseños, e insertar elementos como imágenes, tablas, ecuaciones y encabezados/pies de página.
La sociedad digital se divide en tres aspectos: 1) la transformación de lo mecánico y analógico a lo electrónico en la vida cotidiana y laboral, 2) los cambios profundos en nuestras estructuras mentales, y 3) las comunidades virtuales en el ciberespacio. La cultura digital se refiere a las formas culturales desarrolladas con nuevas tecnologías, como la literatura, poesía y realidad virtual. Las comunicaciones digitales son ahora predominantes, transmitiendo mensajes de forma masiva a través de televisión, revistas, y
Este documento presenta un estudio de caso sobre una propuesta de planeación de un proyecto globalizador basado en el trabajo colaborativo de docentes en la Preparatoria Oficial No. 27 "Fidel Velázquez". El objetivo del estudio fue integrar un equipo docente para diseñar, desarrollar, aplicar y evaluar de forma colaborativa un proyecto que involucra todas las asignaturas de un semestre para desarrollar competencias de los alumnos de manera integral. El documento describe las características de la preparatoria, los doc
Este documento presenta los Mapas de Progreso del Aprendizaje, que describen los aprendizajes que los estudiantes deben lograr en cada ciclo de la educación básica en el Perú. Explica que los mapas muestran la secuencia en que progresan las competencias fundamentales y brindan criterios para evaluar dichos aprendizajes. Además, detalla la estructura de los mapas y la información que los acompaña, como indicadores de desempeño y ejemplos de trabajos de estudiantes.
El documento describe dos formas innovadoras de estructura organizacional: la estructura matricial y la estructura de equipo. La estructura matricial agrupa personas con diversas habilidades especializadas para resolver problemas complejos, mejorando la coordinación horizontal y el acceso a la información. Provee flexibilidad y capacidad de adaptación, pero también puede causar frustración por la doble cadena de mando. La estructura de equipo forma equipos participativos que trabajan directamente con clientes para alcanzar metas, permitiendo flexibilidad y sensibilidad al mercado
El documento describe la instalación de dos sistemas operativos, Windows 7 y Linux, en una máquina virtual en una sola partición de disco duro. Explica los pasos para instalar el simulador de máquina virtual VirtualBox, crear la máquina virtual, particionar el disco duro e instalar cada sistema operativo. El objetivo es determinar las diferencias entre un sistema operativo de software libre frente a uno propietario.
mi disertacion sobre Starkid Productions!MartiRamos
StarkidProductions es una compañía de teatro fundada en 2009 por estudiantes de la Universidad de Michigan. Se especializan en producir parodias musicales basadas en franquicias populares como Harry Potter. Sus primeras producciones incluyen Little White Lie (2007), A Very Potter Musical (2009), y A Very Potter Sequel (2010), las cuales han acumulado más de 60 millones de visitas en YouTube. Sus producciones más recientes incluyen Starship (2011).
Puede que tú ni siquiera lo hagas, pero yo creo en ti.
Incluso si ahora mismo estás desempleado construyendo una posible salida, o paseando para calmar la ansiedad de no tener nada que hacer, yo creo en ti.
Tal vez te sientas aislado, no veas alrededor a nadie en quien apoyarte, el sonido del silencio o el ruido mas anónimo puede que te hagan pensar que no podrás. Pues yo, sin embargo, creo en ti.
Una nueva recaída te puede hacer perder la esperanza, oscurecer ese futuro que comenzabas a dibujar, traerte del recuerdo esas frases que tú solías decirte en la niñez “si todos dicen que soy un desastre, será verdad. El éxito no está hecho para mí”. Aunque estés pasando por eso, yo creo en ti.
The presentation introduces the binary search algorithm. It provides an example of searching for the target value 62 in an sorted array using binary search. The algorithm repeatedly divides the search space in half by comparing the target to the middle element of the array. It narrows down the search space until the target value is found or determined not to exist in the array.
La Unión Europea ha acordado un embargo petrolero contra Rusia en respuesta a la invasión de Ucrania. El embargo prohibirá las importaciones marítimas de petróleo ruso a la UE y pondrá fin a las entregas a través de oleoductos dentro de seis meses. Esta medida forma parte de un sexto paquete de sanciones de la UE destinadas a aumentar la presión económica sobre Moscú y privar al Kremlin de fondos para financiar su guerra.
O documento discute os benefícios da meditação. A meditação ajuda as pessoas a saírem da mente criadora de problemas e ver as coisas como elas são, percebendo que não são o corpo ou a mente, mas vida eterna. Uma pessoa meditativa será mais sensível, criativa, amorosa e compassiva. A meditação é o maior desafio e um tremendo despertar da alma.
Este documento presenta diferentes procedimientos y funciones de análisis fotográfico. Explica la pose habitual de las vacas, los elementos que caracterizan una iglesia católica, y la belleza natural de un municipio. También describe el recorrido de un insecto por una hoja y roca, y las funciones referencial, poética y emotiva en fotografía.
O pai do narrador propõe um acordo para que ele escreva os motivos de seu choro em papéis e os leia dias depois, percebendo que suas queixas eram infundadas. Ao refletir sobre os acontecimentos, o narrador para de se sentir injustiçado e desenvolve maior compreensão sobre justiça.
This document contains an interactive quiz about hardware and software components of a computer. It asks multiple choice questions about definitions of hardware and software, examples of each including a keyboard, RAM, and programs. It also asks users to identify pictures as representing hardware or software components and provides the correct answers. The quiz aims to test a user's understanding of the basic hardware and software concepts.
Este documento describe diferentes fenómenos ondulatorios como la reflexión, refracción, interferencia y difracción. Explica que las ondas son perturbaciones que transmiten energía a través de un medio sin necesidad de desplazar materia. Define la reflexión como cuando una onda choca con un obstáculo y cambia su dirección, la refracción como cuando una onda cambia su velocidad al pasar de un medio a otro, la interferencia como cuando dos o más ondas inciden en un mismo medio, y la difracción como cuando una onda bordea un obstáculo
Este documento describe los compromisos de gestión escolar centrados en los aprendizajes que deben implementarse en las instituciones educativas. Explica que existen 8 compromisos agrupados en compromisos de resultado, proceso y planeamiento. Detalla cada compromiso e indica cómo medirlos e implementarlos, incluyendo el análisis de datos sobre logros de aprendizaje, la consolidación de información y la planificación participativa. El objetivo es que las instituciones mejoren los resultados educativos mediante el seguimiento de estas metas de gestión orientadas
Presentacion hsa region del libertador bernardo o`higginsvidasindical
Este documento resume los problemas que enfrentan los funcionarios honorarios de las plantas faenadoras de exportación en la región de O'Higgins, Chile. Estos trabajadores carecen de soluciones a sus solicitudes, enfrentan horarios de trabajo difíciles y dependencia de las empresas. También tienen problemas para solicitar permisos y cambios de trabajo. Además, los valores pagados por hora a los funcionarios del Servicio Agrícola y Ganadero son mucho menores que los cobrados a las plantas. Finalmente, el documento pide que se reconozca a los funcion
El documento describe las funciones de un servicio técnico, incluyendo recibir clientes, escribir órdenes de servicio, realizar reparaciones, y entregar artículos reparados. Actualmente, el software utilizado es obsoleto y no puede almacenar toda la información necesaria, lo que causa problemas como la pérdida de datos y tiempo ineficiente. La solución propuesta es implementar un nuevo sistema centralizado que pueda almacenar todos los datos requeridos de manera digital para mejorar la eficiencia.
[VISITA: http://ymedicinanatural.com/pielblanca/ ] Las principales causas de las manchas marrones y el oscurecimiento del piel
Pigmentación de la piel, Crema para aclarar la piel, Crema para blanquear la piel, Manchas de envejecimiento en la piel, Manchas en la cara, Eliminar manchas de envejecimiento Crema para piel negra, Emparejar el tono de la piel, Píldoras para aclarar la piel, Píldora blanqueadora, Despigmentante natural de la piel
USTED DESCUBRIRÁ...
Cómo blanquear su piel naturalmente, con seguridad, y en la comodidad
de su hogar, con resultados eficaces.
La manera más fácil de blanquear las pigmentaciones de su piel, pecas,
manchas de la edad, marcas de acné, axilas oscuras, melasma o el color
de su piel en general.
Cómo hacer sus propias cremas para blanquear la piel por monedas! Las mismas cremas que se venden por cientos de dólares en los salones de belleza!
Poderosos ingredientes para blanquear la piel que pueden adquirirse a bajo
precio en cualquier tienda de comestibles.
Por qué el color de la piel cambia constantemente por sí sola y cómo puede aprovechar esta información para lograr una piel hermosa y de color uniforme!
Cómo prevenir la decoloración y el oscurecimiento de la piel,
y que aparezcan manchas irregulares.
Productos populares que afirman aclarar su piel pero son un peligro para
su salud y están prohibidos en la mayoría de los países de Europa,
como también América del Norte.
Qué productos aclararán continuamente su piel con el tiempo y cuales
la oscurecerán, haciendo que su problema sea aún peor!
Cómo aumentar varias veces la eficacia de cualquier producto para blanquear
la piel, con un método sencillo pero eficaz.
Qué dietas juegan un papel importante en el blanqueamiento de su piel
y cuales oscurecen su piel aún más.
Y… mucho más!
VISITA AHORA MISMO: [ http://ymedicinanatural.com/pielblanca/ ]
El documento describe las causas y consecuencias de la crisis financiera ecuatoriana de finales de los años 90 y principios de los 2000. Menciona que la crisis se debió a una mala regulación y falta de supervisión que permitió préstamos fraudulentos y quiebras bancarias, lo que afectó a miles de depositantes y llevó a una recesión económica en el país. También analiza la historia del sistema financiero ecuatoriano y las leyes que lo regulaban.
El documento instruye al lector sobre cómo completar una tarea de computación en Word. Incluye instrucciones para transcribir un artículo, aplicar formatos como márgenes, estilos de texto y diseños, e insertar elementos como imágenes, tablas, ecuaciones y encabezados/pies de página.
La sociedad digital se divide en tres aspectos: 1) la transformación de lo mecánico y analógico a lo electrónico en la vida cotidiana y laboral, 2) los cambios profundos en nuestras estructuras mentales, y 3) las comunidades virtuales en el ciberespacio. La cultura digital se refiere a las formas culturales desarrolladas con nuevas tecnologías, como la literatura, poesía y realidad virtual. Las comunicaciones digitales son ahora predominantes, transmitiendo mensajes de forma masiva a través de televisión, revistas, y
Este documento presenta un estudio de caso sobre una propuesta de planeación de un proyecto globalizador basado en el trabajo colaborativo de docentes en la Preparatoria Oficial No. 27 "Fidel Velázquez". El objetivo del estudio fue integrar un equipo docente para diseñar, desarrollar, aplicar y evaluar de forma colaborativa un proyecto que involucra todas las asignaturas de un semestre para desarrollar competencias de los alumnos de manera integral. El documento describe las características de la preparatoria, los doc
Este documento presenta los Mapas de Progreso del Aprendizaje, que describen los aprendizajes que los estudiantes deben lograr en cada ciclo de la educación básica en el Perú. Explica que los mapas muestran la secuencia en que progresan las competencias fundamentales y brindan criterios para evaluar dichos aprendizajes. Además, detalla la estructura de los mapas y la información que los acompaña, como indicadores de desempeño y ejemplos de trabajos de estudiantes.
El documento describe dos formas innovadoras de estructura organizacional: la estructura matricial y la estructura de equipo. La estructura matricial agrupa personas con diversas habilidades especializadas para resolver problemas complejos, mejorando la coordinación horizontal y el acceso a la información. Provee flexibilidad y capacidad de adaptación, pero también puede causar frustración por la doble cadena de mando. La estructura de equipo forma equipos participativos que trabajan directamente con clientes para alcanzar metas, permitiendo flexibilidad y sensibilidad al mercado
El documento describe la instalación de dos sistemas operativos, Windows 7 y Linux, en una máquina virtual en una sola partición de disco duro. Explica los pasos para instalar el simulador de máquina virtual VirtualBox, crear la máquina virtual, particionar el disco duro e instalar cada sistema operativo. El objetivo es determinar las diferencias entre un sistema operativo de software libre frente a uno propietario.
mi disertacion sobre Starkid Productions!MartiRamos
StarkidProductions es una compañía de teatro fundada en 2009 por estudiantes de la Universidad de Michigan. Se especializan en producir parodias musicales basadas en franquicias populares como Harry Potter. Sus primeras producciones incluyen Little White Lie (2007), A Very Potter Musical (2009), y A Very Potter Sequel (2010), las cuales han acumulado más de 60 millones de visitas en YouTube. Sus producciones más recientes incluyen Starship (2011).
Puede que tú ni siquiera lo hagas, pero yo creo en ti.
Incluso si ahora mismo estás desempleado construyendo una posible salida, o paseando para calmar la ansiedad de no tener nada que hacer, yo creo en ti.
Tal vez te sientas aislado, no veas alrededor a nadie en quien apoyarte, el sonido del silencio o el ruido mas anónimo puede que te hagan pensar que no podrás. Pues yo, sin embargo, creo en ti.
Una nueva recaída te puede hacer perder la esperanza, oscurecer ese futuro que comenzabas a dibujar, traerte del recuerdo esas frases que tú solías decirte en la niñez “si todos dicen que soy un desastre, será verdad. El éxito no está hecho para mí”. Aunque estés pasando por eso, yo creo en ti.
The presentation introduces the binary search algorithm. It provides an example of searching for the target value 62 in an sorted array using binary search. The algorithm repeatedly divides the search space in half by comparing the target to the middle element of the array. It narrows down the search space until the target value is found or determined not to exist in the array.
La Unión Europea ha acordado un embargo petrolero contra Rusia en respuesta a la invasión de Ucrania. El embargo prohibirá las importaciones marítimas de petróleo ruso a la UE y pondrá fin a las entregas a través de oleoductos dentro de seis meses. Esta medida forma parte de un sexto paquete de sanciones de la UE destinadas a aumentar la presión económica sobre Moscú y privar al Kremlin de fondos para financiar su guerra.
O documento discute os benefícios da meditação. A meditação ajuda as pessoas a saírem da mente criadora de problemas e ver as coisas como elas são, percebendo que não são o corpo ou a mente, mas vida eterna. Uma pessoa meditativa será mais sensível, criativa, amorosa e compassiva. A meditação é o maior desafio e um tremendo despertar da alma.
Este documento presenta diferentes procedimientos y funciones de análisis fotográfico. Explica la pose habitual de las vacas, los elementos que caracterizan una iglesia católica, y la belleza natural de un municipio. También describe el recorrido de un insecto por una hoja y roca, y las funciones referencial, poética y emotiva en fotografía.
O pai do narrador propõe um acordo para que ele escreva os motivos de seu choro em papéis e os leia dias depois, percebendo que suas queixas eram infundadas. Ao refletir sobre os acontecimentos, o narrador para de se sentir injustiçado e desenvolve maior compreensão sobre justiça.
This document contains an interactive quiz about hardware and software components of a computer. It asks multiple choice questions about definitions of hardware and software, examples of each including a keyboard, RAM, and programs. It also asks users to identify pictures as representing hardware or software components and provides the correct answers. The quiz aims to test a user's understanding of the basic hardware and software concepts.
3. copyright@www.adrian.runceanu.ro
4. Structura unui program C/C++
4.1. Preprocesare
4.2. Structura unui program C++
4.3. Baze de numeraţie
4.4. Conversia din baza 2 în bazele 8 şi 16 şi invers
4.4.1. Conversia din baza 2 în baza 8 şi invers
4.4.2. Conversia din baza 2 în baza 16 şi invers
4.4.3. Operaţii aritmetice în binar, octal,
hexazecimal
4.5. Probleme propuse spre rezolvare
02.12.2016 Programarea calculatoarelor 3
4. copyright@www.adrian.runceanu.ro
4.1. Preprocesare
02.12.2016 Programarea calculatoarelor 4
Schematic, parcursul unui program sursa scris în
C++, până la executarea lui este următorul:
program sursa iniţial ( extensia .CPP )
preprocesare
program sursă ( extensia .CPP )
compilare
program obiect ( extensia .OBJ )
editarea de legături (linkeditare)
program executabil ( extensia .EXE )
5. copyright@www.adrian.runceanu.ro
4.1. Preprocesare
În C++, după construirea unui program sursă,
se pot evalua anumite valori dacă se utilizează
preprocesorul.
Activitatea preprocesorului se împarte în:
a) includere de fişiere standard / utilizator
b) definire constante simbolice
c) definire macro-uri(macroinstructiuni)
d) compilare condiţionată
02.12.2016 Programarea calculatoarelor 5
6. copyright@www.adrian.runceanu.ro
4.1. Preprocesare
a) Includerea de fişiere standard/utilizator
se face pentru a putea:
utiliza funcţiile predefinite ale limbajului C++ care
se afla în fişiere standard numite header-e (au
extensia .h)
sau pentru a putea utiliza funcţii proprii aflate în
fişiere utilizator
02.12.2016 Programarea calculatoarelor 6
7. copyright@www.adrian.runceanu.ro
4.1. Preprocesare
Astfel, pentru a putea utiliza funcţiile
standard de intrare / ieşire cin / cout, trebuie
scris la începutul unui program C++:
#include <iostream.h> - fişier standard
Iar pentru a utiliza fişiere utilizator:
#include “nume fisier” – fişier utilizator
Observaţie:
Includerea fişierelor se execută numai pe timpul
compilării
02.12.2016 Programarea calculatoarelor 7
8. copyright@www.adrian.runceanu.ro
4.1. Preprocesare
b) Definire constante simbolice
Pentru a mări portabilitatea programelor
C++, se pot folosi constante.
O constantă este un nume pe care
compilatorul C++ îl asociază unei valori care nu
se modifică.
Pentru aceasta se utilizează directiva #define.
02.12.2016 Programarea calculatoarelor 8
9. copyright@www.adrian.runceanu.ro
4.1. Preprocesare
• Asociază numelui nume_constanta textul
denumit text care se poate prelungi pe mai linii.
• Aceasta substituţie a numelui este valabilă în tot
fişierul până la întâlnirea unei directive de
compilare #undef nume.
02.12.2016 Programarea calculatoarelor 9
#define nume_constanta text
10. copyright@www.adrian.runceanu.ro
4.1. Preprocesare
Exemplu:
#define NRLINII 30
#define NRCOLOANE 20
#define DIMENSIUNE NRLINII*NRCOLOANE
int t[NRLINII][NRCOLOANE];
double a[DIMENSIUNE];
Ce va întâlni compilatorul după preprocesor?
int t[30][20];
double a[30*20];
Observaţie: nu se vor face calculele pentru că este vorba
doar de informatie la nivel de text
02.12.2016 Programarea calculatoarelor 10
11. copyright@www.adrian.runceanu.ro
4.1. Preprocesare
Dacă se vor utiliza macroinstrucţiuni sau constante
simbolice în programele C++, atunci acestea trebuie să
aibă nume sugestive şi scrise cu litere mari pentru a
putea ajuta programatorii care citesc codul sursă să
facă diferenţa uşor între constante şi variabile.
Exemplu: Putem defini următoarele constante:
#define TRUE 1
#define FALSE 0
#define PI 3.1415
#define PROGRAMATOR “Pop Ion”
02.12.2016 Programarea calculatoarelor 11
12. copyright@www.adrian.runceanu.ro
4.1. Preprocesare
c) Definirea de macroinstrucţiuni
Un macrou (o macroinstrucţiune) este o
definiţie în care funcţionează reguli de
subtituţie de text.
Apelul macroului se face astfel:
02.12.2016 Programarea calculatoarelor 12
#define nume(param_form1, param_form2, . . . ,param_formn) text
nume(param_actual1, param_actual2,…,param_actualn)
13. copyright@www.adrian.runceanu.ro
4.1. Preprocesare
Unde:
• nume reprezintă numele macroului
• param_form1, param_form2, . . . , param_formn
parametrii formali ai macroului
• iar text este textul în care se vor face înlocuirile
• iar param_actual1, param_actual2, . . . ,
param_actualn sunt parametrii cu care se
apelează macroul în funcţia principală02.12.2016 Programarea calculatoarelor 13
14. copyright@www.adrian.runceanu.ro
4.1. Preprocesare
Funcţionarea macroului este următoarea:
1. în textul dat se înlocuiesc parametrii formali cu
parametrii actuali
2. iar apoi textul obţinut va substitui apelul
macroului.
Exemplu:
#define MAX(a, b) ( (a) < (b) ? (b) : (a) )
#define MIN(a, b) ( (a) > (b) ? (b) : (a) )
#define SGN(x) ((x) > 0 ? 1 : ( (x) == 0 ? 0 : (-1)))
02.12.2016 Programarea calculatoarelor 14
15. copyright@www.adrian.runceanu.ro
4.1. Preprocesare
Am definit câteva macrouri care pot fi utile
în multe programe C++, şi anume:
• MAX şi MIN determină maximul, respectiv
minimul a două numere de orice tip
• iar SGN determină signatura unui număr dat
02.12.2016 Programarea calculatoarelor 15
16. copyright@www.adrian.runceanu.ro
4.1. Preprocesare
Următorul
program C++
va folosi
aceste două
macro-uri:
02.12.2016 Programarea calculatoarelor 16
#include<iostream.h>
#define MAX(a, b) ( (a) < (b) ? (b) : (a) )
#define MIN(a, b) ( (a) > (b) ? (b) : (a) )
int main(void)
{
cout<<“Maximul valorilor 10.0 si 25.0
este “ <<MAX(10.0, 25.0)<<endl;
cout<<“Minimul valorilor 3.4 si 3.1
este ” <<MIN(3.4, 3.1)<<endl;
}
a, b parametri
formali
parametri actuali
17. copyright@www.adrian.runceanu.ro
4. Structura unui program C/C++
4.1. Preprocesare
4.2. Structura unui program C++
4.3. Baze de numeraţie
4.4. Conversia din baza 2 în bazele 8 şi 16 şi invers
4.4.1. Conversia din baza 2 în baza 8 şi invers
4.4.2. Conversia din baza 2 în baza 16 şi invers
4.4.3. Operaţii aritmetice în binar, octal,
hexazecimal
4.5. Probleme propuse spre rezolvare
02.12.2016 Programarea calculatoarelor 17
18. copyright@www.adrian.runceanu.ro
4.2. Structura unui program C++
/*-- nume.cpp -- comentariu iniţial --*/
#include <iostream.h>
#include <math.h>
. . . . /*-- alte directive include --*/
[ declaraţii şi definiţii globale ]
int main(void)
{
[ declaraţii locale ]
< instrucţiuni >
}
02.12.2016 Programarea calculatoarelor 18
optional
20. copyright@www.adrian.runceanu.ro
4. Structura unui program C/C++
4.1. Preprocesare
4.2. Structura unui program C++
4.3. Baze de numeraţie
4.4. Conversia din baza 2 în bazele 8 şi 16 şi invers
4.4.1. Conversia din baza 2 în baza 8 şi invers
4.4.2. Conversia din baza 2 în baza 16 şi invers
4.4.3. Operaţii aritmetice în binar, octal,
hexazecimal
4.5. Probleme propuse spre rezolvare
02.12.2016 Programarea calculatoarelor 20
21. copyright@www.adrian.runceanu.ro
4.3. Baze de numeraţie
Baza de numeraţie 2 (sistemul BINAR)
Ca în orice bază de numeraţie, cifrele folosite în
reprezentarea numerelor sunt cuprinse în intervalul:
[0, baza-1]
Rezultă că în baza 2 avem o reprezentare a
numerelor folosind doar cifrele 0 şi 1.
Fiecare dintre cifrele semnificative ale unei baze de
numeraţie poartă denumirea de digit.
În baza 2 deoarece sunt doar doi digiţi posibili
aceştia au preluat denumirea de binary digit (bit).
De aici provenienţa cuvântului bit.
02.12.2016 Programarea calculatoarelor 21
22. copyright@www.adrian.runceanu.ro
4.3. Baze de numeraţie
În baza 10 aceste cifre sunt 0...9.
Alte baze de numeraţie folosite în legătură cu sistemul binar
sunt: 4, 8 (octal) şi 16 (hexazecimal).
Pentru baza 16 cifrele de reprezentare sunt:
0 . . 9 şi A . . F
S-a convenit folosirea primelor litere ale alfabetului, cu
semnificaţia:
A ţine locul lui 10
B lui 11
C lui 12
D lui 13
E lui 14
F lui 1502.12.2016 Programarea calculatoarelor 22
23. copyright@www.adrian.runceanu.ro
4.3. Baze de numeraţie
În calculatoarele actuale baza de numeraţie
este 2.
Au existat încercări de creare a unor
calculatoare în bază 10, dar nu s-au putut ridica
la performanţele calculatoarelor binare.
S-a păstrat astfel sistemul binar ca standard
pentru calculatoarele digitale.
02.12.2016 Programarea calculatoarelor 23
24. copyright@www.adrian.runceanu.ro
4.3. Baze de numeraţie
Să luăm un exemplu de număr în baza 2:
0110 1101
Ce înseamnă acesta?
Cum poate fi interpretat astfel încât să poată
fi înţeles de către noi (adică tradus în baza 10)?
La aceste întrebări se răspunde plecând de la
regula de reprezentare în orice bază de
numeraţie (poziţională): fiecărei poziţii în număr
îi corespunde o putere a acelei baze de
numeraţie.
02.12.2016 Programarea calculatoarelor 24
25. copyright@www.adrian.runceanu.ro
4.3. Baze de numeraţie
Astfel:
primei poziţii din dreapta îi corespunde puterea 0 a lui 2,
următoarei poziţii îi corespunde puterea 1 a lui 2,
iar ultimei poziţii (prima din stânga) îi corespunde puterea
7 a lui 2.
Atunci putem genera valoarea acestui număr în baza
10 - plecând de la dreapta spre stânga - astfel:
1*20 + 0*21 + 1*22 + 1*23 + 0*24 + 1*25 + 1*26 + 0*27 =
= 1 + 4 + 8 + 32 + 64 = 10910
02.12.2016 Programarea calculatoarelor 25
26. copyright@www.adrian.runceanu.ro
4.3. Baze de numeraţie
La fel procedăm cu un număr în baza 10 când dorim
să-i aflăm valoarea.
Dar, în baza 10 interpretăm natural şi aproape
instantaneu orice număr, care ne sugerează şi o
puternică semnificaţie "cantitativă" (adică mărimea
acelui număr).
Exemplu:
57810 = 8*100 + 7*101 + 5*102 = 8 + 70 + 500
Ştim imediat că avem de-a face cu 'cinci sute
şaptezeci şi opt' şi că acesta se situează cam la
jumătatea intervalului [0-1000].
02.12.2016 Programarea calculatoarelor 26
27. copyright@www.adrian.runceanu.ro
4.3. Baze de numeraţie
Notații:
Bitul se notează cu b.
Combinaţia de 8 biţi succesivi se numeşte Byte
(octet) şi este reprezentat prin litera B
02.12.2016 Programarea calculatoarelor 27
28. copyright@www.adrian.runceanu.ro
4.3. Baze de numeraţie
Într-un număr în baza 2 sunt importante două
poziţii:
Prima din dreapta - care poartă denumirea de Least
Significant bit (LSb)
Prima din stânga - care poartă denumirea de Most
Significant bit (MSb)
Poziţia MSb are de obicei rolul de semn al
numărului:
0 are semnificaţia de plus
1 are semnificaţia de minus
02.12.2016 Programarea calculatoarelor 28
29. copyright@www.adrian.runceanu.ro
4. Structura unui program C/C++
4.1. Preprocesare
4.2. Structura unui program C++
4.3. Baze de numeraţie
4.4. Conversia din baza 2 în bazele 8 şi 16 şi invers
4.4.1. Conversia din baza 2 în baza 8 şi invers
4.4.2. Conversia din baza 2 în baza 16 şi invers
4.4.3. Operaţii aritmetice în binar, octal,
hexazecimal
4.5. Probleme propuse spre rezolvare
02.12.2016 Programarea calculatoarelor 29
30. copyright@www.adrian.runceanu.ro
4.4.1. Conversia din baza 2 în baza 8 şi invers
Ştim că sistemele de numeraţie octal (baza
8) şi hexazecimal (baza 16) au particularitatea
de a folosi ca bază un număr (8 sau 16) care
rezultă din ridicarea la puterea a 3-a sau a 4-a a
cifrei 2, astfel între cele trei sisteme de
numeraţie se pot stabili compatibilităţi directe.
02.12.2016 Programarea calculatoarelor 30
31. 4.4.1. Conversia din baza 2 în baza 8 şi
invers
Astfel, conversia octal-binar şi binar-octal
porneşte de la faptul că orice cifră octală se poate
reprezenta prin 3 cifre binare:
0 = 000 4 = 100
1 = 001 5 = 101
2 = 010 6 = 110
3 = 011 7 = 111
02.12.2016 Programarea calculatoarelor 31
32. copyright@www.adrian.runceanu.ro
4.4.1. Conversia din baza 2 în baza 8 şi invers
Dacă se consideră un număr octal, pentru
conversia în binar se va scrie fiecare cifră octală
prin 3 cifre binare.
Exemplu :
(3 4 7, 5)8 = (011 100 111, 101 )2
02.12.2016 Programarea calculatoarelor 32
33. copyright@www.adrian.runceanu.ro
4.4.1. Conversia din baza 2 în baza 8 şi invers
Dacă se consideră un număr binar, pentru
conversia în octal se vor grupa câte 3 cifre
binare pornind de la poziţia virgulei spre stânga
pentru partea întreagă, respectiv dreapta
pentru partea fracţionară, găsind
corespondentul în octal.
Exemplu:
( 001 110 011 101 , 101 100 )2 = (1635,54)8
1 6 3 5 5 4
02.12.2016 Programarea calculatoarelor 33
34. copyright@www.adrian.runceanu.ro
4. Structura unui program C/C++
4.1. Preprocesare
4.2. Structura unui program C++
4.3. Baze de numeraţie
4.4. Conversia din baza 2 în bazele 8 şi 16 şi invers
4.4.1. Conversia din baza 2 în baza 8 şi invers
4.4.2. Conversia din baza 2 în baza 16 şi invers
4.4.3. Operaţii aritmetice în binar, octal,
hexazecimal
4.5. Probleme propuse spre rezolvare
02.12.2016 Programarea calculatoarelor 34
35. 4.4.2. Conversia din baza 2 în baza 16 şi
invers
La fel se poate proceda şi în cazul conversiei
binar - hexazecimal, orice cifra hexazecimală
putându-se reprezenta prin patru cifre binare:
0 = 0000 4 = 0100 8 = 1000 C = 1100
1 = 0001 5 = 0101 9 = 1001 D = 1101
2 = 0010 6 = 0110 A = 1010 E = 1110
3 = 0011 7 = 0111 B = 1011 F = 1111
02.12.2016 Programarea calculatoarelor 35
38. copyright@www.adrian.runceanu.ro
4. Structura unui program C/C++
4.1. Preprocesare
4.2. Structura unui program C++
4.3. Baze de numeraţie
4.4. Conversia din baza 2 în bazele 8 şi 16 şi invers
4.4.1. Conversia din baza 2 în baza 8 şi invers
4.4.2. Conversia din baza 2 în baza 16 şi invers
4.4.3. Operaţii aritmetice în binar, octal,
hexazecimal
4.5. Probleme propuse spre rezolvare
02.12.2016 Programarea calculatoarelor 38
39. 4.4.3. Operaţii aritmetice în binar, octal,
hexazecimal
a) Operaţii aritmetice în binar:
Unde ‘*’ semnifică un împrumut de la poziţia imediat
următoare a descăzutului, care pentru poziţia curentă înseamnă 2
(deci se interpretează 2 - 1 = 1).
adunare înmulţire scădere
0 + 0 = 0 0 0 = 0 0 – 0 = 0
0 + 1 = 1 0 1 = 0 1 – 0 = 1
1 + 0 = 1 1 0 = 0 1 – 1 = 0
1 + 1 = 10 1 1 = 1 0 – 1 = 1*
02.12.2016 Programarea calculatoarelor 39
40. 4.4.3. Operaţii aritmetice în binar, octal,
hexazecimal
Exemple de operaţii în binar:
11101101,101 +
1011010,001
1000101,110 -
111010,011
101000111,110 1011,011
110,11
10,11
11011
11011
00000
11011
10010,1001
02.12.2016 Programarea calculatoarelor 40
42. copyright@www.adrian.runceanu.ro
4.4.3. Operaţii aritmetice în binar, octal,
hexazecimal
Exemple de operaţii în octal:
Se ţine seama de următoarele reguli:
• La adunare şi înmulţire rezultatul va fi constituit din
restul împărţirii sumei sau produsului la bază, câtul
constituind transportul pentru poziţia următoare
• La scădere, un împrumut de la poziţia următoare a
numărului înseamnă adunarea la descăzutul poziţiei
curente, a bazei de numeraţie
02.12.2016 Programarea calculatoarelor 42
44. 4.4.3. Operaţii aritmetice în binar, octal,
hexazecimal
c) Operaţii aritmetice în hexazecimal:
+ 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 0 1 2 3 4 5 6 7 8 9 A B C D E F
1 1 2 3 4 5 6 7 8 9 A B C D E F 10
2 2 3 4 5 6 7 8 9 A B C D E F 10 11
3 3 4 5 6 7 8 9 A B C D E F 10 11 12
4 4 5 6 7 8 9 A B C D E F 10 11 12 13
5 5 6 7 8 9 A B C D E F 10 11 12 13 14
6 6 7 8 9 A B C D E F 10 11 12 13 14 15
7 7 8 9 A B C D E F 10 11 12 13 14 15 16
8 8 9 A B C D E F 10 11 12 13 14 15 16 17
9 9 A B C D E F 10 11 12 13 14 15 16 17 18
A A B C D E F 10 11 12 13 14 15 16 17 18 19
B B C D E F 10 11 12 13 14 15 16 17 18 19 1A
C C D E F 10 11 12 13 14 15 16 17 18 19 1A 1B
D D E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C
E E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D
F F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E
02.12.2016 Programarea calculatoarelor 44
45. copyright@www.adrian.runceanu.ro
4.4.3. Operaţii aritmetice în binar, octal,
hexazecimal
0 1 2 3 4 5 6 7 8 9 A B C D E F
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 2 3 4 5 6 7 8 9 A B C D E F
2 0 2 4 6 8 A C E 10 12 14 16 18 1A 1C 1E
3 0 3 6 9 C F 12 15 18 1B 1E 21 24 27 2A 2D
4 0 4 8 C 10 14 18 1C 20 24 28 2C 30 34 38 3C
5 0 5 A F 14 19 1E 23 28 2D 32 37 3C 41 46 4B
6 0 6 C 12 18 1E 24 2A 30 36 3C 42 48 4E 54 5A
7 0 7 E 15 1C 23 2A 31 38 3F 46 4D 54 5B 62 69
8 0 8 10 18 20 28 30 38 40 48 50 58 60 68 70 78
9 0 9 12 1B 24 2D 36 3F 48 51 5A 63 6C 75 7E 87
A 0 A 14 1E 28 32 3C 46 50 5A 64 6E 78 82 8C 96
B 0 B 16 21 2C 37 42 4D 58 63 6E 79 84 8F 9A A5
C 0 C 18 24 30 3C 48 54 60 6C 78 84 90 9C A8 B4
D 0 D 1A 27 34 41 4E 5B 68 75 82 8F 9C A9 B6 C3
E 0 E 1C 2A 38 46 54 62 70 7E 8C 9A A8 B6 C4 D2
F 0 F 1E 2D 3C 4B 5A 69 78 87 96 A5 B4 C3 D2 E1
02.12.2016 Programarea calculatoarelor 45
46. 4.4.3. Operaţii aritmetice în binar, octal,
hexazecimal
Exemple de operaţii în hexazecimal:
AF59C +
D8E2
F000 –
1
BCE7E EFFF
5DA2
B8
2ED10
405F6
434C70
02.12.2016 Programarea calculatoarelor 46
47. copyright@www.adrian.runceanu.ro
4. Structura unui program C/C++
4.1. Preprocesare
4.2. Structura unui program C++
4.3. Baze de numeraţie
4.4. Conversia din baza 2 în bazele 8 şi 16 şi invers
4.4.1. Conversia din baza 2 în baza 8 şi invers
4.4.2. Conversia din baza 2 în baza 16 şi invers
4.4.3. Operaţii aritmetice în binar, octal,
hexazecimal
4.5. Probleme propuse spre rezolvare
02.12.2016 Programarea calculatoarelor 47
48. copyright@www.adrian.runceanu.ro
4.5. Probleme propuse spre rezolvare:
1. Să se convertească din sistemul binar în sistemul octal
numerele reprezentate prin:
(101,101)2 = ?8
(111000111,101)2 = ?8
(10110,1101)2 = ?8
2. Să se convertească din sistemul binar în sistemul
hexazecimal numerele reprezentate prin:
(110010,11011)2 = ?16
(111000111,101)2 = ?16
(10111111101)2 = ?16
02.12.2016 Programarea calculatoarelor 48
49. copyright@www.adrian.runceanu.ro
4.5. Probleme propuse spre rezolvare:
3. Să se convertească din sistemul octal în sistemul
binar numerele reprezentate prin:
(173,236)8 = ?2
(153)8 = ?2
4. Să se convertească din sistemul hexazecimal în
sistemul binar numerele reprezentate prin:
(43,AC)16 = ?2
(1C8,B)16 = ?2
02.12.2016 Programarea calculatoarelor 49
50. copyright@www.adrian.runceanu.ro
4.5. Probleme rezolvate
1) Se introduce un număr natural cu maxim 9 cifre. Să se
determine şi să se afişeze numărul de cifre, cea mai mare
cifră, cea mai mică cifră şi suma tuturor cifrelor acestui
număr.
Exemplu:
02.12.2016 Programarea calculatoarelor 50
Date de intrare: 24356103
Date de ieşire:
Numarul de cifre 8
Cea mai mare cifra 6
Cea mai mica cifra 0
Suma cifrelor 24
51. copyright@www.adrian.runceanu.ro
#include<iostream.h>
int main()
{
long int n;
int nr_cifre=0;
int min=100;
int max=-100;
int suma=0;
int cifra;
cout<<"Dati numarul
(maxim 9 cifre) ";
cin>>n;
02.12.2016 Programarea calculatoarelor 51
while(n!=0)
{
cifra=n%10;
nr_cifre++;
if(cif>max) max=cifra;
if(cif<min) min=cifra;
suma=suma+cifra;
n=n/10;
}
cout<<"n numarul de cifre
"<<nr_cifre;
cout<<"n cea mai mare cifra "<<max;
cout<<"n cea mai mica cifra "<<min;
cout<<"n suma cifrelor "<<suma;
}
53. copyright@www.adrian.runceanu.ro
4.5. Probleme rezolvate
2) Dat un număr intreg de
maxim 9 cifre, să se
afişeze numărul de apariţii
al fiecărei cifre.
02.12.2016 Programarea calculatoarelor 53
Exemplu:
Date de intrare 364901211
Date de ieşire:
0 apare de 1 ori
1 apare de 3 ori
2 apare de 1 ori
3 apare de 1 ori
4 apare de 1 ori
5 apare de 0 ori
6 apare de 1 ori
7 apare de 0 ori
8 apare de 0 ori
9 apare de 1 ori
54. copyright@www.adrian.runceanu.ro
#include<iostream.h>
int main()
{
long int n;
int n0,n1,n2,n3,n4,n5,n6,n7,n8,n9;
n0=n1=n2=n3=n4=n5=n6=n7=n8=n9=0;
cout<<"Dati numarul (cu maxim9 cifre) = ";
cin>>n;
while(n!=0) {
switch(n%10){
case 0: n0++;break;
case 1: n1++;break;
case 2: n2++;break;
case 3: n3++;break;
case 4: n4++;break;
case 5: n5++;break;
case 6: n6++;break;
case 7: n7++;break;
case 8: n8++;break;
case 9: n9++;break;
}
n=n/10;
}02.12.2016 Programarea calculatoarelor 54
cout<<"n 0 apare de "<<n0<<" ori";
cout<<"n 1 apare de "<<n1<<" ori";
cout<<"n 2 apare de "<<n2<<" ori";
cout<<"n 3 apare de "<<n3<<" ori";
cout<<"n 4 apare de "<<n4<<" ori";
cout<<"n 5 apare de "<<n5<<" ori";
cout<<"n 6 apare de "<<n6<<" ori";
cout<<"n 7 apare de "<<n7<<" ori";
cout<<"n 8 apare de "<<n8<<" ori";
cout<<"n 9 apare de "<<n9<<" ori";
}
57. copyright@www.adrian.runceanu.ro
4.1. Generalitati. Clasificare
Numim tablou o colecţie de date de acelaşi
tip, în care elementele sunt ordonate, iar
accesul la fiecare element are loc prin indice.
În funcţie de numărul indicilor avem mai
multe tipuri de tablouri:
1. Tablouri unidimensionale (cu un singur indice)
2. Tablouri bidimensionale (cu doi indici)
3. Tablouri multidimensionale (cu mai mulţi
indici)
02.12.2016 Programarea calculatoarelor 57
59. copyright@www.adrian.runceanu.ro
4.2. Tablouri unidimensionale (vectori)
• Tablourile unidimensionale funcţionează ca un
vector şi se pot declara astfel:
• Se observă că este obligatorie folosirea
parantezelor drepte care să încadreze
dimensiunea maximă pe care o alege utilizatorul
pentru acel tablou unidimensional.
02.12.2016 Programarea calculatoarelor 59
tip nume_tablou[dimensiune_maximă];
60. copyright@www.adrian.runceanu.ro
4.2. Tablouri unidimensionale (vectori)
Exemplu:
Declarări de tablouri unidimensionale:
02.12.2016 Programarea calculatoarelor 60
int a[25]; // declararea unui tablou unidimensional cu maxim 25 de
// elemente, fiecare de tip întreg
float x[30]; // declararea unui tablou unidimensional cu maxim 30 de
// elemente, fiecare de tip real simplă precizie
char s[40]; // declararea unui tablou unidimensional cu maxim 40 de
// elemente, fiecare de tip caracter
61. copyright@www.adrian.runceanu.ro
4.2. Tablouri unidimensionale (vectori)
• Compilatorul C++ alocă un spaţiu de memorie
egal cu numărul maxim de elemente ale
tabloului, rezervând bineînţeles octeţi în funcţie
de tipul de bază al fiecărui tablou.
• Accesul la fiecare element al tabloului se face
prin numele acestuia urmat între paranteze, de
indicele său (adică poziţia pe care o ocupă în
tablou).
• În limbajul C++, indicii tablourilor încep
numărătoarea de la valoarea 0.
02.12.2016 Programarea calculatoarelor 61
62. copyright@www.adrian.runceanu.ro
4.2. Tablouri unidimensionale (vectori)
Exemplu:
Modalităţi de acces la elementele ce pot fi
memorate în tablourile unidimensionale
declarate anterior:
02.12.2016 Programarea calculatoarelor 62
a[0] – reprezintă elementul aflat pe prima poziţie în tablou
a[24] - reprezintă elementul aflat pe ultima poziţie în tablou
x[i] - reprezintă elementul aflat pe poziţia i în tablou, unde i poate
avea valori între 0 şi 29.
63. copyright@www.adrian.runceanu.ro
4.2. Tablouri unidimensionale (vectori)
Iniţializarea elementelor unui tablou se poate
face total sau parţial la declararea lor:
int b[5] = {1, 2, 3, 4, 5};
Astfel:
• elementul b[0] are valoarea 1
• elementul b[1] are valoarea 2
• elementul b[2] are valoarea 3
• elementul b[3] are valoarea 4
• elementul b[4] are valoarea 5
02.12.2016 Programarea calculatoarelor 63
64. copyright@www.adrian.runceanu.ro
4.2. Tablouri unidimensionale (vectori)
Problema 1:
Se consideră n numere reale. Se cere să se
determine valoarea minimă şi valoarea maximă.
Exemplu:
02.12.2016 Programarea calculatoarelor 64
Date de intrare:
n=5 si x={10, -2, 34, -198, 4}
Date de ieşire:
minim=-198, maxim=34
65. copyright@www.adrian.runceanu.ro
4.2. Tablouri unidimensionale (vectori)
02.12.2016 Programarea calculatoarelor 65
#include<iostream.h>
int main(void)
{
int i, n;
float x[50], min, max;
cout<<"Dati numarul de elemente ale tabloului ";
cin>>n;
for( i = 0; i <=n; i++ )
{
cout<<"x["<<i+1<<"]= ";
cin>>x[i];
}
Citirea elementelor si
memorarea lor in
vectorul x
Citirea numarului de
elemente ce vor fi
prelucrate in vector - n
66. copyright@www.adrian.runceanu.ro
4.2. Tablouri unidimensionale (vectori)
min = x[0]; max = x[0];
for( i=1; i<n; i++ )
if( min > x[i] )
min = x[i];
else
if( max < x[i] )
max = x[i];
cout<<"nMinimul este "<<min;
cout<<"nMaximul este "<<max;
}
02.12.2016 Programarea calculatoarelor 66
Determinarea
minimului
Determinarea
maximului
68. copyright@www.adrian.runceanu.ro
4.2. Tablouri unidimensionale (vectori)
Problema 2:
Se consideră n numere întregi.
Se cere să se verifice dacă ele sunt sau nu în
ordine crescătoare, afișând câte un mesaj
corespunzător.
Exemplu:
02.12.2016 Programarea calculatoarelor 68
Date de intrare:
n=5 si x={1, 2, 17, 25, 43}
Date de ieşire:
Elemente vectorului sunt in ordine crescatoare
69. copyright@www.adrian.runceanu.ro
4.2. Tablouri unidimensionale (vectori)
#include<iostream.h>
int main(void)
{
int i, n, verif=1;
int x[50];
cout<<"Dati numarul de elemente ale tabloului X ";
cin>>n;
for(i=0; i<n; i++)
{
cout<<"x["<<i+1<<"]= ";
cin>>x[i];
}
02.12.2016 Programarea calculatoarelor 69
Citirea numarului de
elemente ce vor fi
prelucrate in vector - n
Citirea elementelor si
memorarea lor in
vectorul x
70. copyright@www.adrian.runceanu.ro
4.2. Tablouri unidimensionale (vectori)
for(i=0; i<=n-2; i++)
if( x[i] > x[i+1] ) verif=0;
if( verif == 1 ) cout<<"Numerele din tablou sunt in
ordine CRESCATOARE";
else cout<<"Numerele din tablou NU sunt in ordine
CRESCATOARE";
}
02.12.2016 Programarea calculatoarelor 70
Verificarea
proprietatii cerute
in enunt
73. copyright@www.adrian.runceanu.ro
4.3. Tablouri bidimensionale (matrici)
• Tablourile bidimensionale funcţionează ca o
matrice şi se pot declara astfel:
• La fel ca şi în cazul tablourilor unidimensionale,
şi în cazul tablourilor bidimensionale, la
declarare, se trece dimensiunea maximă a liniilor
(dim_linie) şi dimensiunea maximă a coloanelor
(dim_coloana).
02.12.2016 Programarea calculatoarelor 73
tip nume_tablou[dim_linie][dim_coloana];
74. copyright@www.adrian.runceanu.ro
4.3. Tablouri bidimensionale (matrici)
Exemplu:
Declarări de tablouri bidimensionale:
02.12.2016 Programarea calculatoarelor 74
int a[10][10]; // declararea unui tablou bidimensional cu maxim 100 de
// elemente (10*10), fiecare de tip întreg
float x[5][5]; // declararea unui tablou bidimensional cu maxim 25 de
// elemente(5*5), fiecare de tip real simplă precizie
char s[20][10]; // declararea unui tablou bidimensional cu maxim 200 de
// elemente(20*10), fiecare de tip caracter
75. copyright@www.adrian.runceanu.ro
4.3. Tablouri bidimensionale (matrici)
• Compilatorul C++ alocă un spaţiu de memorie
egal cu numărul de linii înmulţit cu numărul de
coloane ale tabloului, rezervând bineînţeles
octeţi în funcţie de tipul de bază al fiecărui
tablou.
• Accesul la fiecare element al tabloului se face
prin numele acestuia urmat între paranteze, de
indicele liniei şi indicele coloanei (adică poziţia
pe care o ocupă în tablou).
02.12.2016 Programarea calculatoarelor 75
76. copyright@www.adrian.runceanu.ro
4.3. Tablouri bidimensionale (matrici)
Exemplu:
Modalităţi de acces la elementele ce pot fi
memorate în tablourile bidimensionale declarate
anterior:
02.12.2016 Programarea calculatoarelor 76
a[0][0] – reprezintă elementul aflat pe linia 0 coloana 0
a[9][9] - reprezintă elementul aflat pe linia 9 coloana 9
x[i][j] - reprezintă elementul aflat pe linia i, coloana j în
matrice, unde i şi j pot avea valori între 0 şi 4.
77. copyright@www.adrian.runceanu.ro
4.3. Tablouri bidimensionale (matrici)
Iniţializarea elementelor unui tablou se poate
face total sau parţial la declararea lor:
int b[2][3]={ {1, 2, 3}, {4, 5, 6} };
Astfel:
• elementul b[0][0] are valoarea 1
• elementul b[0][1] are valoarea 2
• elementul b[0][2] are valoarea 3
• elementul b[1][0] are valoarea 4
• elementul b[1][1] are valoarea 5
• elementul b[1][2] are valoarea 6
02.12.2016 Programarea calculatoarelor 77
78. copyright@www.adrian.runceanu.ro
4.3. Tablouri bidimensionale (matrici)
Problema 1:
Se consideră o matrice A cu nm numere
întregi. Se cere să se obţină transpusa sa.
Exemplu:
02.12.2016 Programarea calculatoarelor 78
Date de intrare:
n=3, m=4 si matricea A:
1 2 3 4
5 6 7 8
9 10 11 12
Date de ieşire:
Matricea transpusa B:
n=4 si m=3
1 5 9
2 6 10
3 7 11
4 8 12
79. copyright@www.adrian.runceanu.ro
4.3. Tablouri bidimensionale (matrici)
#include<iostream.h>
int main(void)
{
int a[10][10], b[10][10];
int n, m, i, j;
cout<<"Dati dimensiunile matricei A n";
cout<<"Dati numarul de linii n = "; cin>>n;
cout<<"Dati numarul de coloane m = "; cin>>m;
for(i=0; i<n; i++)
for(j=0; j<m; j++)
{
cout<<"a["<<i+1<<", "<<j+1<<"] = ";
cin>>a[i][j];
}
02.12.2016 Programarea calculatoarelor 79
Citirea numarului de linii – n
si de coloane - m ale matricei
Citirea elementelor
si memorarea lor in
matricea a
80. copyright@www.adrian.runceanu.ro
4.3. Tablouri bidimensionale (matrici)
cout<<"Elementele matricei A sunt : n";
for(i=0; i<n; i++)
{
for(j=0; j<m; j++) cout<<a[i][j]<<" ";
cout<<"n";
}
02.12.2016 Programarea calculatoarelor 80
Afisarea elementelor
din matricea a
83. copyright@www.adrian.runceanu.ro
4.3. Tablouri bidimensionale (matrici)
Problema 2:
Se consideră două tablouri
bidimensionale (matrici) A şi B cu nm
numere întregi.
Se cere să se calculeze matricea suma:
C = A + B.
02.12.2016 Programarea calculatoarelor 83
84. copyright@www.adrian.runceanu.ro
4.3. Tablouri bidimensionale (matrici)
#include<iostream.h>
int main(void)
{
int Matrice1 [10][10], Matrice2 [10][10], Matricesuma[10][10];
int i, j, n, m;
cout<<"Dati dimensiunile primei matrici n";
cout<<"Dati numarul de linii n = "; cin>>n;
cout<<"Dati numarul de coloane m = "; cin>>m;
for(i=0; i<n; i++){
for(j=0; j<m; j++){
cout<<"Matrice1["<<i+1<<", "<<j+1<<"] = ";
cin>>Matrice1[i][j];
}
}
02.12.2016 Programarea calculatoarelor 84
Citirea numarului de linii – n
si de coloane - m ale matricei
Citirea
elemente
lor si
memorar
ea lor in
prima
matrice
89. copyright@www.adrian.runceanu.ro
4.3. Tablouri bidimensionale (matrici)
Problema 3:
Se consideră două tablouri
bidimensionale (matrici) A şi B cu nm,
respectiv mp numere întregi.
Se cere să se calculeze matricea produs:
C = A * B.
02.12.2016 Programarea calculatoarelor 89
90. copyright@www.adrian.runceanu.ro
4.3. Tablouri bidimensionale (matrici)
Exemplu:
02.12.2016 Programarea calculatoarelor 90
Date de intrare:
n=2, m=3 si matricea a:
1 2 3
4 5 6
m=3, p=4 si matricea b:
1 2 3 4
5 6 7 8
9 10 11 12
Date de iesire:
n=2 si p=3 si matricea
produs c:
38 44 50 56
83 98 113 128
91. copyright@www.adrian.runceanu.ro
4.3. Tablouri bidimensionale (matrici)
#include<iostream.h>
int main(void)
{
int a[10][10], b[10][10], c[10][10];
int n, m, i, j, k, p;
cout<<"Dati dimensiunile matricei A n";
cout<<"Dati numarul de linii n = "; cin>>n;
cout<<"Dati numarul de coloane m = "; cin>>m;
for(i=0; i<n; i++)
for(j=0; j<m; j++)
{
cout<<"a["<<i+1<<", "<<j+1<<"] = ";
cin>>a[i][j];
}
02.12.2016 Programarea calculatoarelor 91
Citirea numarului de linii – n
si de coloane - m ale matricei
Citirea elementelor
si memorarea lor in
matricea a
92. copyright@www.adrian.runceanu.ro
4.3. Tablouri bidimensionale (matrici)
cout<<"Elementele matricei A sunt : n";
for(i=0; i<n; i++)
{
for(j=0; j<m; j++) cout<<a[i][j]<<" ";
cout<< "n";
}
02.12.2016 Programarea calculatoarelor 92
Afisarea elementelor
din matricea a
93. copyright@www.adrian.runceanu.ro
4.3. Tablouri bidimensionale (matrici)
cout<<"Dati dimensiunile matricei B n";
cout<<"Dati numarul de linii m = "; cin>>m;
cout<<"Dati numarul de coloane p = "; cin>>p;
for(i=0; i<m; i++)
for(j=0; j<p; j++)
{
cout<< "b["<<i<<", "<<j<<"] = ";
cin>>b[i][j];
}
cout<<"Elementele matricei B sunt : n";
for(i=0; i<m; i++)
{
for(j=0; j<p; j++) cout<<b[i][j]<<" ";
cout<<"n";
}
02.12.2016 Programarea calculatoarelor 93
Citirea
elementelor si
memorarea lor in
matricea b
94. copyright@www.adrian.runceanu.ro
4.3. Tablouri bidimensionale (matrici)
• Conditie: Numarul de coloane din prima
matrice trebuie sa fie egal cu numarul de linii
din a doua matrice.
02.12.2016 Programarea calculatoarelor 94
Prima matrice
2 x 4
A doua matrice
4 x 3
Trebuie sa fie
acelasi numar
Matricea rezultat
98. copyright@www.adrian.runceanu.ro
Probleme rezolvate – tablouri unidimensionale
Enunt:
Se considera un numar natural n. Se cere sa se
formeze un vector cu cifrele numarului.
Exemplu:
02.12.2016 Programarea calculatoarelor 98
Date de intrare:
Pentru valoarea: n = 23416789
Date de iesire:
Se obtine vectorul cu elementele:
9 8 7 6 1 4 3 2
99. copyright@www.adrian.runceanu.ro
Probleme rezolvate – tablouri unidimensionale
#include<iostream.h>
int main(void)
{
// declaram variabilele pe care le vom utiliza in program
int x[30];
long int n, i, m;
cout<<"Dati numarul natural n = ";
cin>>n;
02.12.2016 Programarea calculatoarelor 99
100. copyright@www.adrian.runceanu.ro
Probleme rezolvate – tablouri unidimensionale
i = 0;
while(n != 0){
x[i] = n % 10;
i++;
n = n / 10;
}
m = i-1;
cout<<"nVectorul cu cifrele numarului este n";
for(i = 0; i < m; i++){
cout.width(3); cout<<x[i];
}
}
02.12.2016 Programarea calculatoarelor 100
102. copyright@www.adrian.runceanu.ro
Probleme rezolvate – tablouri unidimensionale
Enunt: Reuniunea a doua multimi
Sa se scrie un program care sa calculeze
reuniunea a doua multimi de cate n, respectiv m
numere intregi memorate cu ajutorul vectorilor.
Exemplu:
02.12.2016 Programarea calculatoarelor 102
Date de intrare:
n = 5, a = {1, 2, 5, 7, 12} si
m = 4, b = {2, 4, 8, 12}
Date de iesire:
se obtine: k=7, c={1, 2, 5, 7, 12, 4, 8}
103. copyright@www.adrian.runceanu.ro
Probleme rezolvate – tablouri unidimensionale
#include<iostream.h>
int main(void)
{
int a[100], b[100], c[100], n, m, i, j, k, ok;
cout<<"Dati cardinalul multimii A - n = ";
cin>>n;
cout<<"Dati elementele multimii A n";
for(i = 0; i < n; i++){
cout<<"a["<<i+1<<"] = ";
cin>>a[i];
}
02.12.2016 Programarea calculatoarelor 103
104. copyright@www.adrian.runceanu.ro
Probleme rezolvate – tablouri unidimensionale
cout<<"Dati cardinalul multimii B - m = ";
cin>>m;
cout<<"Dati elementele multimii B n";
for(i = 0; i < m; i++)
{
cout<<"b["<<i+1<<"] = ";
cin>>b[i];
}
// copiem elementele din multimea A in multimea C
for(i = 0; i < n; i++) c[i]=a[i];
k = n;
02.12.2016 Programarea calculatoarelor 104
105. copyright@www.adrian.runceanu.ro
Probleme rezolvate – tablouri unidimensionale
for(j = 0; j < m; j++)
{
ok = 1; // variabila care verifica daca un element apartine sau
un multimii A
for(i = 0; i <n ;i++)
if(b[j] == a[i]) // daca elementul din multimea B apartine si
multimii A atunci nu-l adaugam in multimea reuniune - C
ok = 0;
if(ok == 1)
{
k++;
c[k] = b[j];
}
} 02.12.2016 Programarea calculatoarelor 105
106. copyright@www.adrian.runceanu.ro
Probleme rezolvate – tablouri unidimensionale
cout<<"nElementele multimii reuniune sunt : n";
for(i = 0; i < k; i++)
{
cout.width(9);
cout<<c[i];
}
}
02.12.2016 Programarea calculatoarelor 106
108. copyright@www.adrian.runceanu.ro
Probleme propuse spre rezolvate – tablouri
unidimensionale
1. Intersectia a doua multimi
Sa se scrie un program care sa calculeze
intersectia a doua multimi de cate n, respectiv m
numere intregi memorate cu ajutorul vectorilor.
Exemplu:
02.12.2016 Programarea calculatoarelor 108
Date de intrare:
n = 5 a = {1, 2, 5, 7, 12} si
m = 4 b = {2, 4, 8, 12}
Date de iesire:
se obtine: k = 2 d = {2, 12}
109. copyright@www.adrian.runceanu.ro
Probleme propuse spre rezolvate – tablouri
unidimensionale
2. Diferența a două mulțimi
Sa se scrie un program care sa calculeze
diferenta a doua multimi de cate n, respectiv m
numere intregi memorate cu ajutorul vectorilor.
Exemplu:
02.12.2016 Programarea calculatoarelor 109
Date de intrare:
n = 5 a = {1, 2, 5, 7, 12} si
m = 4 b = {2, 4, 8, 12}
Date de iesire:
se obtine: k = 3 e = {1, 5, 7}
110. copyright@www.adrian.runceanu.ro
Probleme propuse spre rezolvate – tablouri
unidimensionale
3. Se dă un şir de n numere naturale. Să se afişeze
pe două randuri, pe primul rand cele pare şi pe al
doilea cele impare.
Exemplu:
02.12.2016 Programarea calculatoarelor 110
Date de intrare:
Pentru n = 10
si elementele 4 3 2 5 6 8 9 0 1 5
Date de iesire:
4 2 6 8 0
3 5 9 1 5
111. copyright@www.adrian.runceanu.ro
Probleme propuse spre rezolvate – tablouri
unidimensionale
4. Sa se scrie un program care sa introducă n
numere intr-un vector şi să citeasccă un număr d.
Să se afişeze acele numere din şirul dat care sunt
divizibile cu d.
Exemplu:
02.12.2016 Programarea calculatoarelor 111
Date de intrare:
n=5 si valorile: 5 7 10 23 15, d=5
Date de iesire:
5 10 15
112. copyright@www.adrian.runceanu.ro
Probleme propuse spre rezolvate – tablouri
unidimensionale
5. Se introduc temperaturile măsurate in n zile. Să
se scrie un program care să afişeze media
temperaturilor negative şi media celor pozitive.
Exemplu:
02.12.2016 Programarea calculatoarelor 112
Date de intrare:
n = 5 si temperaturile: 23 24 23 25 22
Date de iesire:
23.40
113. copyright@www.adrian.runceanu.ro
Pentru alte informații teoretice și aplicative legate
de acest capitol se recomandă următoarele referințe
bibliografice:
1. Adrian Runceanu, Mihaela Runceanu, Noțiuni de
programare în limbajul C++, Editura Academica
Brâncuși, Târgu-Jiu, 2012 (www.utgjiu.ro/editura)
2. Adrian Runceanu, Programarea şi utilizarea
calculatoarelor, Editura Academica Brâncuși, Târgu-Jiu,
2003 (www.utgjiu.ro/editura)
3. Octavian Dogaru, C++ - teorie şi practică, volumul I,
Editura Mirton, Timişoara, 2004
(www.utgjiu.ro/editura)
02.12.2016 Programarea calculatoarelor 113