Haliucinas
-
Pranešimai
26 -
Užsiregistravo
-
Lankėsi
-
Atsiliepimai
0%
Turinio tipas
Forumas
Kalendorius
Parduotuvė
Akademija
Skelbimai
Haliucinas Pranešimai
-
-
Atminties apsauga suveikia. Sukurdamas lokalųjį kintamąjį n ir jo neapibrėždamas leidi jam įgyt reikšmę prieš tai buvusią atmintyje. Jei ten buvo 0 tada tavo masyvas turės 0 elementų ir bandydamas įrašyt į kurią nors masyvo vietą gauni nustojimą veikt nors sintaksiškai viskas teisingai bei kompiliuoja gerai.
- andriusvv8 sureagavo į tai
- 1
-
for key, val in userinfo2.items(): try: exec(key + '=val') except Exception, e: err=''
-
@echo off set file=file.txt FOR /F "tokens=*" %%i IN (%file%) DO ( START %%i TIMEOUT 1 >nul )
- DestruCtoR ir pakartoti sureagavo į tai
- 2
-
//Dalele, nukeliautas atstumas #include <iostream> #include <cstdlib> #include <iomanip> #include <cmath> #include <fstream> #include <climits> using namespace std; int main() { system("chcp 1257"); int m,n; double x1, y1, x2, y2, s, z, ab, speed, minSpeed, maxSpeed, avgSpeed; maxSpeed = avgSpeed = s = 0; minSpeed = INT_MAX; ifstream fd("Duomenys.txt"); ofstream fr("rezultatai.txt"); fd >> m; fd >> n; fd >> x1 >> y1; for (int i = 1; i < m; ++i) { fd >> x2 >> y2; ab = sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); speed = ab / n; if (speed > maxSpeed) maxSpeed = speed; if (speed < minSpeed) minSpeed = speed; s += ab; x1 = x2; y1 = y2; } avgSpeed = s/((m-1)*n); fr << fixed << setprecision(2) << minSpeed << endl; fr << fixed << setprecision(2) << avgSpeed << endl; fr << fixed << setprecision(2) << maxSpeed << endl; fr << fixed << setprecision(2) << s << endl; fd.close(); fr.close(); return 0; }
-
@echo off set file=file.txt FOR /F "tokens=*" %%i IN (%file%) DO START %%i
Kiekvienas linkas turėtų būt naujoje failo eilutėje.
- DestruCtoR sureagavo į tai
- 1
-
-
Tai čia sprendimas trivialus, yra n+k būtų padaryt praktiškai tą patį. Vienas iš kitokių kelių, vietoj bool'o galėjai panaudotos pirštinės numerius nuliais užpildyt ir jos nebeskaičiuotų. Tas bool'as šiuo atvėju kaip flagas nurodantis, praleist pirštinę jei su ja pora jau sudaryta.
-
Bandyk taip:
Pridėk į struktūrą naują kintamąjį
struct Pirstines { //failo skaitymui int Sk1; // Vieta pirmam skaičiui iš failo int Sk2; // antram skaičiui int Sk3; // trečiam skaičiui bool used; };
Skaityme visur jį inicializuok
for(int i = 0; i < n; i ++) { fd >> A[i].Sk1 >> A[i].Sk2 >> A[i].Sk3; A[i].used = false; }
Ir tikrinant poras, jau panadotas išmesk
if(A[i].Sk3 == A[j].Sk3 && A[i].Sk1 == m && A[j].Sk1 == m && A[i].Sk2 != A[j].Sk2 && (!A[i].used && !A[j].used)) { b++; A[i].used = true; A[j].used = true; break; }
-
-
kam tų readln tiek daug?
taip pat parašyta, kad neišvest rezultato, tai writeln neturi būt
taip pat pas tave for cikle nėra pridedamas vienetas prie integer'io i, tai ciklas tęsis amžinai. Padaryk cikle, kad kaskart pridėtų po 1 prie i.
Kelių readln prireikia fpc naudojantis kiek atsimenu iš praktikos.
Dėl išvedimo tai turima omeny nenaudot crt modulio, o ne neišvest į konsolę.
Mašai c ciklą su paskalio, veiks teisingai, pridėjus i+1 iteruosi per kas antrą i.
var i:integer;
rezultatas:integer;
begin
for i:= 1000 to 9999 do
rezultatas:= i div 3;
writeln(rezultatas);
readln;
Readln;
end.
ar tai galetu buti teisinga formule naudojant pascal?
Neteisinga. Pagal sąlygą, turi skaičiaus skaitmenis sudėt ir juos tikrint ar dalijasi iš trijų.
var i, n, sum, rezultatas:integer; begin for i := 1000 to 9999 do begin sum := 0; n := i; while (n > 0) do begin sum += n mod 10; n := n div 10; end; if ((sum mod 3) = 0) then begin rezultatas := i; writeln(rezultatas); end; end; end.
-
-
void Rikiavimas(Automobilis A[], int n) { Automobilis t; bool done = false; while (!done) { done = true; for (int i = 0 ; i < n-1 ; i++) { if ((A[i].pav > A[i+1].pav) || (A[i].pav == A[i+1].pav && A[i].z > A[i+1].z)) { done = false; t = A[i]; A[i] = A[i+1]; A[i+1] = t; } } n--; } }
-
Šiek tiek kitoks sprendimas:
#include <iostream> #include <fstream> using namespace std; #define RECT_NUM 3 #define MAX(x, y) (((x) > (y)) ? (x) : (y)) #define MIN(x, y) (((x) < (y)) ? (x) : (y)) struct Rect { int lx; int ly; int rx; int ry; }; void readFile(Rect rectArray[]) { ifstream fd("data.txt"); for (int i = 0; i < RECT_NUM; i++) { fd >> rectArray[i].lx >> rectArray[i].ly >> rectArray[i].rx >> rectArray[i].ry; } fd.close(); } int maxArea(Rect rectArray[]) { Rect tmp = rectArray[0]; for (int i = 1; i < 3; i++) { if ( tmp.lx < rectArray[i].rx && tmp.rx > rectArray[i].lx && tmp.ly < rectArray[i].ry && tmp.ry > rectArray[i].ly ) { tmp.lx = MAX(tmp.lx, rectArray[i].lx); tmp.ly = MAX(tmp.ly, rectArray[i].ly); tmp.rx = MIN(tmp.rx, rectArray[i].rx); tmp.ry = MIN(tmp.ry, rectArray[i].ry); } } return (tmp.rx - tmp.lx) * (tmp.ry - tmp.ly); } int main(int argc, char *argv[]) { Rect rectArray[RECT_NUM]; readFile(rectArray); cout << maxArea(rectArray) << endl; return 0; }
-
#include <iostream> #include <fstream> #include <string> using namespace std; struct Apskr { string apskPav; string savPav; int mNum; }; void skaityti(Apskr[]); int main() { Apskr apskr[60]; skaityti(apskr); return 0; } void skaityti(Apskr a[]) { fstream in("U2.txt"); int sk; in >> sk; for (int i = 0; i < sk; i++) { in >> a[i].savPav >> a[i].mNum >> a[i].apskPav; cout << a[i].apskPav << " " << a[i].savPav << " " << a[i].mNum << endl; } }
-
program HelloWorld; Const n = 20; var myArray : Array[1..n] of Integer; myArray2 : Array[1..n] of Integer; i, j, index : Integer; exist : Boolean; begin Randomize; for i := 1 to n do begin myArray[i] := Random(10)+1; end; for i := 1 to n-1 do write(myArray[i], ', '); writeln(myArray[n]); index := 1; exist := false; for i := 1 to n do begin for j := 1 to n do if myArray[i]<>myArray2[j] then exist := false else begin exist := true; break; end; if not exist then begin myArray2[index]:=myArray[i]; inc(index); end; end; i := 1; while myArray2[i+1] <> 0 do begin write(myArray2[i], ', '); inc(i); end; writeln(myArray2[i]); end.
-
Gal galit kas sia programa perrasyt su procedura nes man nelabai gaunasi Aciu
Program DBDirMBK; var dbd, mbk: integer; procedure DBDirMBK(a, b: longint); var tmp : integer; begin tmp := a * b; while a<>b do if a > b then a := a - b else b := b - a; dbd := a; mbk := tmp div a; end; begin DBDirMBK(12, 18); writeln('The least common multiple of 12 and 18 is: ', mbk); writeln('The greatest common divisor of 12 and 18 is: ', dbd); end.
Nagrinėkis, gal čia aiškiau bus.
-
Jei galima vietoj procedūros rašyt funkciją tuomet:
Program lcmgcd; function lcm(a, b: longint): longint; begin lcm := a; while (lcm mod b) <> 0 do inc(lcm, a); end; function gcd(a, b: longint): longint; begin if a mod b <> 0 then gcd := gcd(b, a mod b) else gcd := b; end; begin writeln('The least common multiple of 12 and 18 is: ', lcm(12, 18)); writeln('The greatest common divisor of 12 and 18 is: ', gcd(12, 18)); end.
-
Aš be while ir if čia daugiau nieko stebuklingo nenaudoju ko galėtų neleist naudot, o jei tiksliau kas neaišku tai klausk.
-
26.
var N : Longint; maxN : integer; counter, id : integer; begin counter := 1; write('Input: '); readln(N); maxN := N mod 10; while N > 0 do begin if (N mod 10) >= maxN then begin maxN := N mod 10; id := counter; end; N := N div 10; inc(counter); end; writeln('Max: ', maxN); write('Nr.: ', id); end.
27.
var N : longint; num1 : integer; num3 : integer; sum : integer; begin write('Input: '); readln(N); num1 := N mod 10; num3 := N mod 1000; num3 := num3 div 100; sum := (num1*num1)+(num3*num3); write('Sum: ', sum); end.
28.
var N : longint; begin write('Input: '); readln(N); while N > 0 do begin if ((N mod 10) mod 2) <> 0 then write((N mod 10)*(N mod 10), ' '); N := N div 10; end; end.
- StorasSushis sureagavo į tai
- 1
-
nuo kada windows naudoja ne NTFS? :D
Čia turbūt turėjo omeny MBR ir GPT disko skirsnių lenteles, o ne disko failų sistemą.
-
k1 = k; for i:=1 to (n-1) DO Begin k := k+2; End; Println k1+k;
rodos taip bus.... reikėtu dar patikrinti dėl viso pikto/ (Paskalio jau turbūt 10 metų neteko naudoti)
Jaučiu jog galima gražia formulę parašyti šitam skaičiavimui, bet nesugalvojau dar kaip
Išmes neteisingą atsakymą kodas, 20 berods, vietoj 30.
Keli variantai, rinkis patinkantį:
function Sum(k:integer; n:integer):integer; begin Sum := k; for i := 1 to (n-1) do begin k := k + 2; Sum := Sum + k; end; end;
function Sum2(k:integer; n:integer):integer; begin Sum2 := k; if n > 1 then Sum2 := Sum2 + Sum2(k+2,n-1); end;
arba tiesiog
s := k; for i := 1 to (n-1) do begin k := k + 2; s := s + k; end;
-
emu8086
Gali gal kokį link numesti, iš ko mokytis, nes pusės kas čia parašyta nesuprantu? :D Arba kokius nors, kad ir minimalius komentarus parašyk. :)
Dėl veikimo programos tai EMU neturi 29h interrupto, todėl eilutę
mov al, bl int 29h
pakeisk į
mov ah, 02h mov dl, bl int 21h
%title "Trumpiausio zodzio ilgis" .model small .stack 100h .data atsakymas db 0Dh,0Ah,'Trumpiausio zodzio eiluteje ilgis: ','$' eilute dw 255 .code pradzia: mov ax, @data ; init .data seg mov ds, ax ; mov ah, 0Ah ; isvedimo funkc. mov dx, offset eilute int 21h mov bh,00 mov bl, byte ptr [eilute + 1] ; po 0Ah funkcijos, pirmi du baitai rodo įvestos eilutės ilgį, tas ilgis išsaugomas mov byte ptr [eilute + bx + 2], ' ' ; eilutės gale tarpas (kitaip netikrintų paskutinio žodžio) mov byte ptr [eilute + bx + 3], '$' ; žymi eilutės pabaigą mov di, 2 ; di, si - iteruojami registrai mov si, 0 ; mov bx, 00ffh ; bet kokia reiškmė didesnė už 10, skirta tikrinimui su žodžio ilgiu .tikrink: cmp byte ptr [eilute + di], '$' ; tikrina ar eilutės pabaiga, jei pabaiga šoka į ".pabaiga:" je .pabaiga cmp byte ptr [eilute + di], ' ' ; tikrina ar tarpas je .tarpas inc di inc si jmp .tikrink ; nepraėjus tikrinimų šoka atgal į pradžią su padidintais di, si .tarpas: cmp bx, si ; jei žodžio ilgis mažesnis už buvusį žodžio ilgį (bx) ir jį priskiria. jei ne tikrina toliau ja .didesnis inc di mov si, 0 jmp .tikrink .didesnis: mov bx, si inc di mov si, 0 jmp .tikrink .pabaiga: mov ah, 09h ; išveda funkc. mov dx, offset atsakymas int 21h add bl, '0' ; hex2dec mov ah, 02h ; išveda mažiausią ilgį mov dl, bl int 21h mov ah, 4Ch int 21h end pradzia
dėl mokymosi, tai galiu pasiųlyt tik intelio dokumentaciją.
kur jus čia kankina su tuo emu?
- yellowcard sureagavo į tai
- 1
-
Kuo kompilini? Nes man viskas gražiai eina. IMG
-
Sveiki.
Reikia pagalbos rašant assemblerio programos kodą. Esu visiškai žalias šioje srityje, tai nepykit, jei mano klausimas jums pasirodys kvailas.
Užduotis prašo į ekraną išvesti trumpiausio žodžio sakinyje ilgį. Pasiskaitęs konspektus, per visą dieną sugebėjau parašyti tik pačią pradžią - eilutės nuskaitymą. Nesugalvoju ką rašyti toliau. Būtų gerai, kad netik parašytumėt kodą, bet ir paaiškintumėt, arba bent užvestumėt mane ant kelio, nes vistiek visą programą turėsiu paaiškinti dėstytojui. :D
Dėkui. :)
%title "Trumpiausio zodzio ilgis" .model small .stack 100h .data atsakymas db 0Dh,0Ah,'Trumpiausio zodzio eiluteje ilgis: ','$' eilute dw 255 .code pradzia: mov ax, @data mov ds, ax mov ah, 0Ah mov dx, offset eilute int 21h mov bh,00 mov bl, byte ptr [eilute + 1] mov byte ptr [eilute + bx + 2], ' ' mov byte ptr [eilute + bx + 3], '$' mov di, 2 mov si, 0 mov bx, 00ffh .tikrink: cmp byte ptr [eilute + di], '$' je .pabaiga cmp byte ptr [eilute + di], ' ' je .tarpas inc di inc si jmp .tikrink .tarpas: cmp bx, si ja .didesnis inc di mov si, 0 jmp .tikrink .didesnis: mov bx, si inc di mov si, 0 jmp .tikrink .pabaiga: mov ah, 09h mov dx, offset atsakymas int 21h add bl, '0' mov al, bl int 29h mov ah, 4Ch int 21h end pradzia
Programa išves gerą atsakymą jeigu mažiausias žodis bus iki 9 simbolių. Čia kaipo viskas elementaru tai nepyk, bet tingiu aiškint. :D
- slamas ir yellowcard sureagavo į tai
- 2
Reikia pagalbos su C++[Struktūros]
Programuotojų kampas
Atrašyta
C++11 standartas turi savo konteinerį enkapsuliuojantį masyvus. Dėl jo panaudojimo manau neturėtų bėdų kilt, bet jei savo nori rašyt tai vienas iš būdų būtų: