Порада дня:
Для того щоб відформатувати флешку в NTFS зайдіть у властивості системи (WIN+BREAK) - вкладка "Оборудование" - "Диспетчер устройств" - "Дисковые устройства". Далі двічі натискаємо на імені вашої флешки - вкладка "Политика" і встановлюємо перемикач в положення "Оптимизировать для выполнения" - ОК. Після цього можна відформатувати флешку в NTFS звичайним способом. А потім варто у вкладці "Политика" перемикач встановити в положення по замовчуванню - "Оптимизировать для быстрого удаления". Враховуйте факт можливого швидшого зношування флешки, відформатованої в NTFS.
Согласен. Просто спор иногда возникает между сторонниками одного из языков, к стати спор другорядный, и его бы не было, если бы программирующих на Паскале и С++ консольно, не обвиняли в отсталости от современных веяний.
Ну Вы даёте Сами затеяли возню в визуальных(не по теме ), а теперь и тут продолжаете
А якою мовою записати - це, на мою думку, другорядне.
Правильно і мова і середовище. Я взагалі починаю вчити в середовищі Packal ABC вважаю що як для навчання оптимальне середовище, як навчиться створювати програми то програмуємо в Паскалі або в Фрі Паскалі. То воно все однакове просто та синя оболонка трохи дітей лякає. А коли вони йдуть поступово то потім їм вже і Делфі до душі.
А якою мовою записати - це, на мою думку, другорядне.
Правильно і мова і середовище. Я взагалі починаю вчити в середовищі Packal ABC вважаю що як для навчання оптимальне середовище, як навчиться створювати програми то програмуємо в Паскалі або в Фрі Паскалі. То воно все однакове просто та синя оболонка трохи дітей лякає. А коли вони йдуть поступово то потім їм вже і Делфі до душі.
Я взагалі починаю вчити в середовищі Packal ABC вважаю що як для навчання оптимальне середовище, як навчиться створювати програми то програмуємо в Паскалі або в Фрі Паскалі. То воно все однакове просто та синя оболонка трохи дітей лякає. А коли вони йдуть поступово то потім їм вже і Делфі до душі.
А я стараюся дотримуватися вимог таких як на олімпіаді. Тому зразу практикую ТурбоПаскаль7
...вимог таких як на олімпіаді. Тому зразу практикую ТурбоПаскаль7
Якщо я не помиляюся то на олімпіадах використовують Free Pascal, тому що це середовище є безкоштовне. Вже кілька років починаючи з Міжнародної і нижче (так принято) використовують тільки безкоштовні середовище програмування.
Використовую Паскаль АВС та free Pascal перемога в обласній олімпіаді навіть не розглядається зі всім відомих причин :)))) , а ось на міській олімпіаді переможців і призерів маємо.
Якщо я не помиляюся то на олімпіадах використовують Free Pascal, тому що це середовище є безкоштовне. Вже кілька років починаючи з Міжнародної і нижче (так принято) використовують тільки безкоштовні середовище програмування.
У нас на обласній олімпіаді використовується Турбопаскаль 7. На вищий рівень ще не потрапляв. Вийти із села на 4-ий етап дуже не просто. А хіба Борланд до цих пір збирає за Паскаль гроші?
У 10-11 класах вже пізно ростити учасника олімпіад. У цих класах можна ознайомити з мовою програмування і тільки.
Правду кажете! Але завдання олімпіадні не відповідають знанням наших олімпійців (10-11) класів. Це ж абсурд відбувається на наших обласних олімпіадах. Прикро що в нашій державі не зважають на справедливість.
Прикро що в нашій державі не зважають на справедливість.
silva, про яку справедливість Ви говорите? Олімпіади у всі часи проводилися для обдарованих учнів! Таких учнів ростять змалку не на уроках, а на додаткових заняттях та факультативах. Але якщо учень сам не прагне до навчання і не займається самостійно - то з нього нічого не вийде путящого. Треба зацікавити учнів. Те, що на уроках інформатики готуватися до олімпіади не можливо - це факт. Програмування тільки в кінці 11 класу вивчається. Така концепція нашої освіти. Всі питання до МОНу. У значно кращому становищі ліцеї та гімназії. Але олімпіади для них не проводяться окремо. Планка одна для всіх і це справедливо. Бо якщо планку понизити, то нагороджувати прийдеться пів класу у кожній школі.
Вітаю всіх! Дуже розвинувся форум за той час як мене тут не було! Приємно, що так багато небайдужих! А щодо олімпіад, то свою невеличку лепту у розвиток логічного мислення вносить і наша редакція. Так, у січні виходить книжка ОСНОВА ТЕОРІЇ ГРАФІВ (автори Ірина Скляр та Віталій Лапінський). Дуже простою мовою розібрані всі класичні задачі по графам. Тут тільки наприкінці книжки подано фрагменти програм на Паскалі Кому цікава мова Сі, то з січня 2010 у номерах ми подаємо конспекти уроків для початківців (вже здали у виробничій відділ). А взагалі, мова програмування — це лише інструмент, а головне тут логіка.
На рахунок підготовки до олімпіади! Допоможіть будь ласка. Є така проста задача: наприклад на факторіа, але в ній області вхідних і вихідних даних дуже велика. тобто не підходить longint. Наприклад знайти n! Обмеження n<=1000 , результат відповідно буде дуже велике число. Я так розумію що то треба подавати це число - результат через масив. Я вже і довгу арифметуку читала. І щось я не можу пояснити своєму учню як то воно працює. Допоможіть скиньте якусь подібну задачу. (Розвязок) наперед дякую.
Є така проста задача: наприклад на факторіа, але в ній області вхідних і вихідних даних дуже велика. тобто не підходить longint. Наприклад знайти n! Обмеження n<=1000 , результат відповідно буде дуже велике число. Я так розумію що то треба подавати це число - результат через масив. Я вже і довгу арифметуку читала. І щось я не можу пояснити своєму учню як то воно працює. Допоможіть скиньте якусь подібну задачу. (Розвязок) наперед дякую.
Тут деякі процедури для роботи з довгими числами, можна використовувати для різних задач, зробив вам для обчислення факторіалу, але я писав все сам, не використовуючи готових алгоритмів, тому трохи коряво, не оптимально, але працюють, звичайно краще по модулю 1000 я використовував 10, але це не важко переробити.
program longar;//Довга арифметика type t=array [1..10000] of word; var i,a,b:integer; a1,a2,a3:t;
procedure vmas(a:integer; var m:t); //поміщення числа в масив var k,l:integer; begin k:=0; repeat begin l:=a mod 10; a:=a div 10; inc(k); m[k+1]:=l; end; until a=0; m[1]:=k; end;
procedure prnt(m:t);//Друкування масиву var k:word; begin k:=m[1]+1; while k>1 do begin write(m[k]); dec(k);end; end;
procedure suma(m,n:t;var mn:t);//сума довгих чисел var k,l,x,y:integer; begin if m[1]>n[1] then l:=m[1] else l:=n[1]; for k:=2 to l+1 do begin x:=(m[k]+n[k]) mod 10; y:=(m[k]+n[k]) div 10; mn[k]:=mn[k]+x; mn[k+1]:=y; end; if mn[k+1]>0 then mn[1]:=k else mn[1]:=k-1; end;
procedure dob(m,n:t;var mn:t);//добуток довгих чисел var k,l,x,y,z,c,d:integer; begin k:=m[1];l:=n[1];z:=0; for x:=2 to k+1 do begin for y:=2 to l+1 do begin c:=(m[x]*n[y]) mod 10; d:=(m[x]*n[y]) div 10; mn[y+z]:=mn[y+z]+c; if mn[y+z]>9 then begin inc(mn[y+z+1]); mn[y+z]:=mn[y+z] mod 10; end; mn[y+z+1]:=mn[y+z+1]+d; if mn[y+z+1]>9 then begin inc(mn[y+z+2]); mn[y+z+1]:=mn[y+z+1] mod 10; end; end; inc(z); end; if mn[k+l+1]<>0 then mn[1]:=k+l else mn[1]:=k+l-1; end;
procedure prir(n:t;var m:t);//Присвоєння значення одного масиву іншому var k:integer; begin for k:=1 to n[1]+1 do m[k]:=n[k]; end;
procedure fibo(n:integer;var mn:t);//Знаходження числа фібоначі var k,kk:integer; m,r:t; begin m[1]:=1;m[2]:=1; r[1]:=1;r[2]:=1; if n=1 then begin prir(m,mn) end else begin if n=2 then prir(r,mn) else begin for k:=3 to n do begin for kk:=1 to mn[1]+1 do mn[kk]:=0; suma(m,r,mn); prir(r,m); prir(mn,r); end; end; end; end;
procedure nul(var m:t); //Обнулення масиву var k:integer; begin for k:=1 to m[1]+1 do m[k]:=0; end;
begin //основна програма readln(a); vmas(1,a1); for i:=1 to a do begin vmas(i,a2); dob(a1,a2,a3); prir(a3,a1); nul(a3); end; prnt(a1); end.
Так набагато краще, точніше швидше по модулю 1000. Пізніше допишу для введення довгих чисел:
program longar;//Довга арифметика type t=array [1..1000] of integer; var i,a,b:integer; a1,a2,a3:t;
procedure nul(var m:t); //Обнулення масиву var k:integer; begin for k:=1 to 1000 do m[k]:=0; end;
procedure vmas(a:integer; var m:t); //ïРоміщення числа в масив var k,l:integer; begin k:=0; nul(m); repeat begin l:=a mod 1000; a:=a div 1000; inc(k); m[k+1]:=l; end; until a=0; m[1]:=k; end;
procedure prnt(m:t);//Друк масиву var k:integer; begin k:=m[1]+1; while k>1 do begin if m[k]<>0 then write(m[k]) else write(0,0,0); dec(k);end; end;
procedure suma(m,n:t;var mn:t);//Сума довгих чисел var k,l,x,y,x1:integer; begin nul(mn); if m[1]>n[1] then l:=m[1] else l:=n[1]; for k:=2 to l+1 do begin x:=(m[k]+n[k]) mod 1000; y:=(m[k]+n[k]) div 1000; mn[k]:=mn[k]+x; x1:=k; while mn[x1]>999 do begin mn[x1+1]:=mn[x1+1]+(mn[x1] div 1000); mn[x1]:=mn[x1] mod 1000; inc(x1); end; //if mn[k]>999 then begin mn[k+1]:=mn[k] div 1000; mn[k]:=mn[k] mod 1000; end; mn[k+1]:=mn[k+1]+y; end; if mn[k+1]>0 then mn[1]:=k else mn[1]:=k-1; end;
procedure dob(m,n:t;var mn:t);//Добуток довгих чисел var k,l,x,y,z,c,d,x1:integer; begin nul(mn); k:=m[1];l:=n[1];z:=0; for x:=2 to k+1 do begin for y:=2 to l+1 do begin c:=(m[x]*n[y]) mod 1000; d:=(m[x]*n[y]) div 1000; mn[y+z]:=mn[y+z]+c; x1:=y+z; while mn[x1]>999 do begin mn[x1+1]:=mn[x1+1]+(mn[x1] div 1000); mn[x1]:=mn[x1] mod 1000; inc(x1); end; //if mn[y+z]>999 then begin mn[y+z+1]:=mn[y+z+1]+(mn[y+z] div 1000); mn[y+z]:=mn[y+z] mod 1000; end; mn[y+z+1]:=mn[y+z+1]+d; x1:=y+z+1; while mn[x1]>999 do begin mn[x1+1]:=mn[x1+1]+mn[x1] div 1000; mn[x1]:=mn[x1] mod 1000; inc(x1); end; //if mn[y+z+1]>999 then begin mn[y+z+2]:=mn[y+z+2]+(mn[y+z+1] div 1000); mn[y+z+1]:=mn[y+z+1] mod 1000; end; end; inc(z); end; if mn[k+l+1]<>0 then mn[1]:=k+l else mn[1]:=k+l-1; end;
procedure prir(n:t;var m:t);//Присвоєння одного масиву іншому var k:integer; begin for k:=1 to n[1]+1 do m[k]:=n[k]; end;
procedure fibo(n:integer;var mn:t);//Числа Фібоначі var k:integer; m,r:t; begin nul(m);nul®; m[1]:=1;m[2]:=1; r[1]:=1;r[2]:=1; if n=1 then begin prir(m,mn) end else begin if n=2 then prir(r,mn) else begin for k:=3 to n do begin nul(mn); suma(m,r,mn); prir(r,m); prir(mn,r); end; end; end; end;
begin begin //Основна програма readln(a); if a=1 then Writeln(0) else begin vmas(1,a1); for i:=1 to a do begin vmas(i,a2); dob(a1,a2,a3); prir(a3,a1); nul(a3); end; prnt(a1); end; end; end.