LICEUL TEORETIC „JOZEF GREGOR TAJOVSKY” NĂDLAC
Anul şcolar 2017-2018
PROIECT DIDACTIC
Data: 25.04.2018
Clasa: a IX-a A matematică informatică
Disciplina: Informatică
Unitatea de învățare: Elaborarea algoritmilor de rezolvare a problemelor
Titlul lecţiei: “Algoritmul pentru testarea unui număr prim”
Tipul lecţiei: lecţie de dobândire de noi cunoştinţe
Timp:50 min
Strategia didactică:
Metode si procedee didactice: conversaţia, explicaţia, brainstorming, studiul de caz, problematizarea, algoritmizarea, exercițiul,
învăţarea prin cooperare, învățarea prin descoperire.
Mijloace de învăţământ:manualul, fişele de lucru, calculatorul
Forme de activitate: frontală, individuală
Forme de evaluare: observaţia sistematică, conversaţia, tema de lucru în clasă, autoevaluarea, evaluarea de către colegi.
Bibliografia:
1. Manual de informatică, clasa a IX-a ,varianta C++ Mariana Miloșescu, EDP, Bucureşti 2011
2. Algoritmi fundamentali în C++, Doina Logofătu, Polirom, Iaşi, 2007
Competențe specifice
Analizarea enunţului unei probleme: identificarea datele de intrare şi a datele de ieşire (cu specificarea tipul datelor şi a relaţiilor
existente între date) şi stabilirea paşilor de rezolvare a problemei.
Reprezentarea algoritmilor în pseudocod
Respectarea principiilor programării structurate în procesul de elaborare a algoritmilor
Obiective operaţionale :
Elevii trebuie să fie capabili:
O1: să identifice problemele în care se utilizează algoritmul pentru determinarea unui număr prim
O2:să identifice datele de intrare şi de ieşire
O3: să declare corect tipurile de date
O4: să aplice cunoștințele referitoare la determinarea unui număr prim în rezolvarea problemelor
PROIECT DIDACTIC
Ob Activitatea Strategii
Etapele lecţiei Evaluare
. Activitatea profesorului elevului didactice
[Link] Verificarea prezenţei, anunţarea subiectului şi
Se pregătesc
organizatoric. obiectivelor lecţiei. Conversația
pentru activitate
(3min)
Pentru reactualizarea cunoștințelor profesorul
solicită elevilor să formuleze timp de trei minute Elevii notează în
Conversația
câte 3-4 răspunsuri la întrebarea: Ce ştiţi despre caiete răspunsurile
[Link]
O. determinarea divizorilor unui număr? Cere solicitate. Brainstorming orală
cunoştinţelor
1 elevilor să analizeze și să decidă asupra celor Comunică
anterioare
mai valoroase idei. profesorului
(10min)
Activitate frontală: Se vor prelua informaţiile, şi informaţiile
se vor scrie pe tablă. Se trec în dezbatere solicitate.
principalele proprietăți și exemple studiate.
[Link]
Profesorul prezintă caracteristicile algoritmului:
noilor cunoştinţe
Un număr este prim dacă are ca divizori pe 1 şi
(30min)
pe el însuşi, adică nu are divizori proprii.
-elevii urmăresc
O1 Algoritmul pentru testarea unui număr natural n Conversația
prezentarea
dacă este prim, constă în generarea tuturor
profesorului şi Explicaţia
numerelor naturale mai mari sau egale cu 2 sau
notează noţiunile
mai mici sau egale cu sqrt(n) şi verificarea Problematizare
noi.
pentru fiecare număr generat dacă îl divide pe n. a
Dacă există cel puţin un asemenea număr atunci
numărul n nu este prim. Se va utiliza o variabilă
logică x care va avea valoarea TRUE dacă
Participă la analiza
numărul este prim şi FALSE dacă numărul nu
exemplelor,
este prim. Presupunem că numărul este prim deci
urmăresc
x se iniţializează cu valoarea TRUE. La primul
secvențele de
număr găsit care îl divide pe n se va schimba
program Exercițiul
O2 valoarea variabilei x în FALSE.
determinând Învățarea prin
Pentru exemplificare profesorul alege numărul
soluțiile posibile. descoperire
n=13 şi explică modalitatea de verificare, apoi
solicită elevilor să determine împreună
O3 Participă la
algoritmul de testare a numărului prim n.
stabilirea etapelor Algoritmizarea
Algoritmul în pseudocod va fi următorul: orală
de rezolvare a Problematizare
întreg n,i;
logic x; problemei, găsind
început a
citeste n;
x ← TRUE;
i ← 2;
cât_timp i<=sqrt(n) and x=TRUE soluția optimă
execută
pentru
dacă n mod i= 0 atunci
x ← FALSE; implementarea
altfel Învățarea prin
algoritmului,
i ← i + 1; cooperare
sfârsit_dacă; realizează
sfârsit_cât timp;
implementarea
dacă x = TRUE atunci
scrie „Numărul este prim”; algoritmului.
altfel
scrie „Numărul nu este prim”;
sfârsit_dacă;
sfârsit.
Profesorul împarte elevilor o fisă de -Elevii rezolva in
Munca Observatia
[Link] [Link] spre rezolvare exerciţiile de pe caiete şi la tablă
O4 individuala sistematică
cunoştinţelor fişa, explică sarcinile de lucru elevilor. cerinţele fişei de Exerciţiul
practică
lucru.
Evidenţiază răspunsurile şi apreciază Sunt atenți la
[Link]
participarea la lecţie aprecierile făcute Conversația
(5min)
de profesor
5. Tema pentru Elevii scriu în
Specifică subiectele pentru tema de acasă
acasă (2min) caiete
FIŞA DE LUCRU
PROBLEMA 1
Se dau n numere naturale.
Cerinţa:
Să se afiseze numerele prime.
Date de intrare:
Programul citeşte de la tastatură numărul n, iar apoi n numere naturale.
Date de ieşire:
Programul afişează numerele prime din cele n numere citite.
PROBLEMA 2
Se citeşte un interval [a,b].
Cerinţa:
Să se afiseze câte numere prime se află în intervalul [a,b].
Date de intrare:
Programul citeşte de la tastatură numerele a şi b.
Date de ieşire:
Programul afişează numărul k reprezentând numărul de valori prime din intervalul [a,b].
PROBLEMA 3
Se da un număr natural n.
Cerinţa:
Să se afiseze primele n numere naturale prime.
Date de intrare:
Programul citeşte de la tastatură numărul n.
Date de ieşire:
Programul afişează primele n numere naturale prime.
PROBLEMA 4
Se dau n numere naturale .
Cerinţa:
Să se afiseze cel mai mare număr prim din şir.
Date de intrare:
Programul citeşte de la tastatură numărul n, poi n numere naturale.
Date de ieşire:
Programul afişează numărul max reprezentând cel mai mare număr prim citit.
PROBLEMA 5
Se da un număr natural n.
Cerinţa:
Să se afiseze cel mai mare număr prim, mai mic decât numărul n.
Date de intrare:
Programul citeşte de la tastatură numărul n.
Date de ieşire:
Programul afişează numărul x reprezentând cel mai mare număr prim mai mic decât n.
1. Determinati numerele prime
#include<iostream.h>
#include<conio.h>
#include<math.h>
int main()
{int n,i,j,prim,a;
cout<<"n="; cin>>n;
for(i=1;i<=n;i++)
{ cout<<"a="; cin>>a;
j=2; prim=1;
while((j<=sqrt(a))&&(prim==1))
{if(a%j==0) prim=0;
else j++;
}
if(prim==1)
cout<<a<<" ";
}
getch();
return 0;
P2Citindu-se un interval [a,b], se va afişa câte numere prime se află în acel interval
#include <stdio.h>
#include <math.h>
int main(void)
{
int a,b,i,n,d,ok,s=0;
scanf("%d %d",&a,&b);
for (i=a;i<=b;i++)
{
if (i%2==0)
{
if (i==2)
s++;
}
else
{
ok=0;
d=3;
while (ok==0 && d<=sqrt(i))
{
if (i%d==0)
ok=1;
d=d+2;
}
if (ok==0)
s++;
}
}
printf("%d",s);
return 0;
}
P3. Sa se afiseze primele n numere prime, n introducandu-se de la tastatura.
#include<iostream.h>
#include<conio.h>
#include<math.h>
int main()
{ int n,i,j, nr, prim;
cout<<"n="; cin>>n;
i=1;
nr=0;
while(nr<n)
{
prim=1; j=2;
while((j<=sqrt(i))&&(prim==1))
{ if(i%j==0) prim=0;
else j++;
}
if(prim==1)
{cout<<" "<<i;
nr++;
}
i++;
}
getch();
return 0;
}
[Link] mai mare număr prim, mai mic decât numărul n, citit de la tastatură
#include <stdio.h>
#include <math.h>
int main(void)
{
int n,x,ok=1,d,ok1;
scanf("%d",&n);
x=n;
if (x%2==0)
x=n+1;
while (ok)
{
x=x-2;
ok1=0;
d=3;
while (ok1==0 && d<=sqrt(x))
{
if (x%d==0)
ok1=1;
d=d+2;
}
if (ok1==0)
{
printf("%d",x);
ok=0;
}
}
return 0;
}
4.
#include <stdio.h>
#include <math.h>
int main(void)
{
int n,x,ok=1,d;
scanf("%d",&n);
x=n;
if (x%2==0)
x=n-1;
while (ok)
{
x=x+2;
ok=0;
d=3;
while (ok==0 && d<=sqrt(x))
{
if (x%d==0)
ok=1;
d=d+2;
}
if (ok==0)
{
printf("%d",x);
ok=0;
}
}
return 0;
}