Унтах, эрүүл мэнд

Сарын статистик. Хүмүүсийн өдрүүдийн статистик. Орос дахь нас баралт сараар

Арьсны ирмэгийн харагдах байдал нь чухал юм. Хэрэв гүрнүүд хүндэтгэл багатай байвал бүс нутгийн нутаг дэвсгэрийн бүрэн бүтэн байдалд заналхийлнэ. Өндөр иргэншил, бага бууралт нь үндэстний хэмнэлтийг баталгаажуулдаг. Хүн амын статистик нь шаардлагатай үзүүлэлтүүдийг тодорхойлох боломжийг олгодог.

Алдартай байдал нь тухайн бүс нутгийн шинж тэмдэг юм. Бяцхан үрсээ орхидог ядуу буурай оронд хүндлэл өндөр байдаг, дэлхий дээр хүүхэд цөөхөн байдаг. Амьдрах сайхан сэтгэлтэй гэмтэй улс оронд хүн ам нь бөөн хүүхдүүдийг зажилахаас айдаггүй.

ОХУ-ын хүн амын динамик

Хүснэгтэнд ОХУ-ын хүн амын тоог чулуулгаар харуулав. Энэ нь хүн амын байгалийн өсөлт хэрхэн өөрчлөгдсөнийг сануулах болно:


Рик Гэрлэсэн хүүхдүүдийн тоо Нийт хүн амын тоо
1927 4 688 000 94 596 000
1939 4 329 000 108 785 000
1950 2 859 000 102 833 000
1960 2 782 353 119 906 000
1970 1 903 713 130 252 000
1980 2 202 779 138 483 00
1990 1 988 858 148 273 746
2000 1 266 800 146 303 611
2010 1 788 948 142 865 433
2015 1 940 579 146 544 710
2016 1 888 729 146 804 372

Хүүхдийн аль статус нь илүү чухал болохыг ойлгохын тулд охид, хөвгүүдийн хүн амын статистик мэдээллийг энд оруулав. Новополоцк хотын эргэн тойрон дахь үзэсгэлэнг харцгаая. 2014 онд таван зуу шахам эмэгтэй хүүхэд, магадгүй зургаан зуун хүний ​​хүүхэд мэндэлжээ. 2015 онд 595 хүү, 537 охин мэндэлсэн байна. Бусад хүн амтай газруудын хувьд маршрут нь ойролцоогоор ижил байна.

Охидын хүн амын статистик Хөвгүүд хүний ​​байдлын тухай ярьж чаддаггүй хүмүүсийн тухай ярьдаг, дэлхий дээр илүү их гарч ирдэг.

  1. Чеченийн Бүгд Найрамдах Улс.
  2. Ингушет.
  3. Ямало-Ненецийн автономит тойрог.

Тавдугаар сарын хамгийн том үзэсгэлэн худалдаанд оролцогчид:

  1. Тюмень муж
  2. Львов муж
  3. Львов муж

2016 онд ОХУ-ын хүн амын нас баралт статистик үзүүлэлтээс хэтрээгүйгээс үл хамааран нас барсан хүмүүсийн тоо өөрчлөгдсөөр байна. Үүний дор төрд илүү их хүндэтгэлтэй байсан. 10 жилийн хүн амын статистик тоо баримтаас харахад Орос улс хүн амын байгалийн өсөлтөөс хойш дэлхийд 63-т (2016 оны мэдээлэл) орсон байна. Хүснэгтэд оросууд нас барсан гол шалтгааныг харуулав (одооноос 2016 оны дунд үе хүртэл):

Хувь хүний ​​тоо (мянга)
716,7
198,2
13,5
5,7
16,3
7,2
халдвар21,8

2016 оны хүн амын статистик мэдээллээс харахад ОХУ-ын хүн ам 1 км² тутамд 8.6 хүн байна. Энэ нь дэлхийн хамгийн бага үзүүлэлтүүдийн нэг юм. Их нутаг дэвсгэрүүд зүгээр л хоосон байна. Сүүлийн 20 жилийн хугацаанд тосгон, жижиг газрууд устаж үгүй ​​болж, тосгонууд хэзээ ч хүн амтай байгаагүй.

2017 оны эхэн үеийн дэлхийн нөхцөл байдал

2017 оны эхний улирлын статистик мэдээгээр дэлхийн хүн ам 50 сая хүнээр нэмэгджээ. Өнөөдөр дэлхий дээр хэдэн зуун мянган хүүхэд байна. ЭЭнэ баримтыг дэглэм дэх хүн төрөлхтний эмч баталж болно.

ОХУ-ын 2017 оны хүн ам, нас баралтын түвшин

Орос улс үргэлж дэлхийн хамгийн том нутаг дэвсгэрийн гүрэн байсаар ирсэн. Эндхийн хүн ам хурдацтай буурч байна. Тус улсад хүн ам зүйн хямрал нүүрлэж байна. ОХУ-д 2017 оны эхэн үеийн хүн амын статистик мэдээнд үндэслэн өмнөх үеийнхээс цөөн хүүхэд төржээ.

Беларусь, Украины хүн амын өсөлт

Украин дахь чулуулгийн популяцийн статистик:

Рик Гэрлэсэн хүүхдүүдийн тоо Нийт хүн амын тоо
2000 өгөгдөл алга48 663 600
2005 426 100 47 100 462
2010 497 700 45 782 592
2015 411 800 42 759 300

Доорх диаграмм байнаУкраины иргэний харьяаллын статистик түүнчлэн нас барсан хүний ​​нас баралт (үлдсэн 25 хүний ​​хувьд). Хүн ам хэрхэн өсч, хэрхэн буурч байсныг тодорхой харуулсан.

Чулуулгийн дагуу Беларусийн хүн амын статистик:

Рик Гэрлэсэн хүүхдүүдийн тоо Нийт хүн амын тоо
2000 93 691 9 988 000
2005 90 508 9 664 000
2010 108 050 9 491 000
2015 119 509 9 481 000

Хөвгүүдийн хүн амын статистик Бүгд Найрамдах Беларусь улсад доорх график дээрх тоонуудыг харна уу. Хүний байр суурь эмэгтэй хүнийхээс арай том гэж хэлэх боломжгүй. Гэсэн хэдий ч шинээр гэрлэсэн хүмүүсийн тоо бага зэрэг өөрчлөгдсөн байна. Хүн, эмэгтэй хүн амын тоог авч үзвэл Беларусийн хүмүүсийн хүснэгтээс харахад эмэгтэйчүүд олон, цөөхөн байна.


Сүүлийн жилүүдэд Орос, Украинд хүн амын тоо буурч, Беларусь улсад энэ нь нэмэгдэж, Орос дахь хүн ам, нас баралтын статистик мэдээ үүнийг баталж байна.

Тэнхлэг, угсармал сонголтыг тайрах: позилання(https://transfiles.ru/m757t)
Excellence-д та оюун санааны хэлбэршилт/өнгөний хэмжүүрээр ажиллах хэрэгтэй (энэ төрлийн арьсанд бусдаас хамааралгүй хэд хэдэн бэлдмэл байдаг)
+ нийт хугацааны дунджаас доогуур болон хэдэн арван жилийн дунджаас доогуур нэмэх.

50-60 жилийн хугацаанд хөхөөр хооллодог хүн амд дээд амжилт, харин хөхөөр хооллодог хүн амын дунд хамгийн бага үзүүлэлт ажиглагдаж байсан нь гайхмаар зүйл юм. Би 2 шалтгааныг таамаглаж болно:
а - хөхөөр хооллож буй хүмүүсийн хувьд жирэмслэх цаг нь Их Посад дээр, харин Сичный дахь хүмүүсийн хувьд - паска болон эрчимтэй өвсний талбайн роботуудын хоорондох завсарт тусав.
б – эхийн сүүгээр төрсөн хүүхдийг төрөх үед нь хүмүүс бүртгэсэн (бүртгүүлсэн). Энэ хандлагын талаар эмээ маань надад хэлсэн (үг хэлэхээс өмнө нагац эгч өөрөө үүнийг одоог хүртэл бүртгэсэн, гэхдээ үнэндээ энэ нь цээжинд төрсөн). Гэсэн хэдий ч 70-аад онд энэ хандлага өөрчлөгдсөн (эсвэл бэлгийн тусламжийн хөгжлийг дагаж эхэлсэн).

20-р зууны нөгөө хагасыг бүхэлд нь хавар ид дэлгэрч байв. Бүр нарийн яривал 20-р зууны дунд үед өвөл-хаврын үеийг давж (хаврын эхэн, зуны эхэн үе), дараа нь хүүхэд төрүүлэх нь хавар-зуны үе рүү (тэр үед) урьд өмнө байгаагүй шилжилт хийсэн. та нарын эхлэл зуны сүүл рүү нүүсэн - намрын эхэн үе - улирал) выдпусток) - хотын оршин суугчдын тоо нэмэгдэж, орон нутгийн соёлыг хөгжүүлэх, хөдөө орон нутгийн иргэдийн доройтлын талаар ярих нь ойлгомжтой. Түүгээр ч барахгүй 90-ээд оны хямралын сэтгэхүйд энэ чиг хандлага 20 жилийн настай болсон нь эдийн засгийн доройтол, дача/хот/ туслах ноёрхол гэх мэт соёлын үзэгдлийн өргөн хөгжлийг илэрхийлж болох юм. 90-ээд онд олж авсан). Тэтгэмжийг одоо засвар (болон жирэмслэх) ажилд биш харин эрүүл хооллолтын хоолонд ашигладаг байсан.

21-р зууны эхэн үеэс хүүхдийн өсөлт хожуу үе рүү огцом шилжиж, шилжилт хөдөлгөөн улам хурц, хүчтэй болсон (магадгүй булан тойроод байж магадгүй). 00-аад оны дунд үеэс хүүхэд төрүүлэхийн ач холбогдол зун-намар болсон. Дараа нь үзэл баримтлал нь намар-өвлийн саруудад (эрт үеэс өнөөг хүртэл) шилжсэн. Хэрэв энэ нь статистикийн нотолгоо биш бол сайхан дүр зураг гарч ирнэ. Хамгийн харанхуй, хамгийн хүйтэн сарууд нь хүмүүс гэртээ үлдэж, гэртээ байхыг хичээдэг хамгийн дулаан сар болжээ.

Би яагаад энэ зургийг Цикава гэж нэрлэсэн юм бэ? Баруун талд нь гэрэлтүүлгийн ертөнц (гудамжинд болон гэртээ) хөгжиж, нойргүйдэл нь хожуу үе рүү шилжиж байна (хүмүүс орондоо орж, дараа нь гарах) - хүүхдийн үзэл баримтлал аажмаар нэмэгдэх болно. өөрчлөх Харанхуйд идэх цаг болжээ. Өөрөөр хэлбэл, цахилгаанчин байхгүй байсан бол (эсвэл тэднийг асрах гэж оролдсон) хүүхдүүд өвсний шохойн дунд төрдөг байсан бол орон сууцанд (мөн гудамжинд) гэрэлтүүлэг тасралтгүй асаалттай байсан (Москва хэзээ ч унтдаггүй) ) - хүүхдүүд өвсөнд жирэмсэлсэн. Товчхондоо, гэрэлд хүүхдүүдтэй ажиллах нь дээр (мөн харанхуйд та алдаж болно).

ОХУ-ын Эрүүл мэндийн яамны мэдээлэлд үндэслэн Холбооны Улсын Статистикийн алба (Росстат) ОХУ-ын нас баралтын статистик мэдээллийг цуглуулдаг. Статистик нь олон нийтэд нээлттэй бөгөөд үүнээс Орост нас баралтын шалтгаан, мөн Орос болон бусад нутаг дэвсгэрт хүн ам зүйн үзүүлэлтүүд хэрхэн өөрчлөгдөж байгаа талаар шаардлагатай бүх мэдээллийг олж авах боломжтой.

Та доорх тайлангаас ОХУ-ын нас баралтын статистикийн дүн шинжилгээтэй танилцах боломжтой.

Орос улсад нас баралтын шалтгаанууд

2016 онд Орос улсад нас баралтын гол шалтгаанууд.

2016 онд 1,891,015 орос хүн нас баржээ.

    Нас баралтын хамгийн түгээмэл шалтгаанууд нь: цусны эргэлтийн тогтолцооны өвчин - 904,055 хүн нас барсан бол зүрхний ишемийн өвчнөөр 481,780 хүн нас барсан байна.

    Хорлонтой үйл ажиллагаа нь Орост нас баралтын бас нэг гол шалтгаан болж байна - энэ бүлгийн өвчнөөр 295,729 хүн нас баржээ.

    Нас баралтын гурав дахь үндсэн шалтгааныг “Үхлийн гадаад шалтгаан” гэж нэрлэдэг. Энэ ангилалд осол, зодох, амиа хорлох, үхэлд хүргэх гэмтэл гэх мэт орно. Янз бүрийн шалтгааны улмаас 167,543 хүн нас баржээ.

    Нас баралтын гол шалтгаан нь зам тээврийн осол (15,854), архидалт (14,021), амиа хорлолт (23,119) байна.

    ОХУ-д архины хамаарал нь нас баралтын гол шалтгаан болж байна - 56,283 хүн архи, согтууруулах ундаа хэтрүүлэн хэрэглэснээс үүдэлтэй өвчнөөр нас баржээ.

Энэ хугацаанд 1,107,443 орос хүн нас баржээ.

2016, 2017 оны харьцуулсан статистик

2016, 2017 оны статистикийн шинэчлэлт нь Орос улсад нас баралтын шалтгаан хэрхэн өөрчлөгдөж байгааг тодорхойлох боломжтой болсон. Өнөөдрийн байдлаар 2017 оны өдөр тутмын хамгийн сүүлийн үеийн статистик мэдээ 2016, 2017 оны эхний хагас жилийн мэдээлэлтэй тэнцэж байна.

Өнөөдрөөс өнгөрсөн зууны эцэс хүртэлх хугацаанд нас барсан хүний ​​тоо 23,668 хүнээр буурч байсныг тэмдэглэж болно. Өвчний улмаас нас барсан цусны эргэлтийн тогтолцооны тоо 17,821 хүнээр буурсан ч энэ нас баралтын шалтгаан нь гол бөгөөд чухал байхаа больсон - энэ хугацаанд 513,432 хүн нас баржээ. Гадны шалтгааны улмаас нас барсан хүмүүсийн тоо мэдэгдэхүйц буурсан байна - 2016 оны эхний хагаст гэмтэл, бэртлийн улмаас 80,516 хүн нас баржээ. 2017 оны эхний улиралд 90,214 байсан. Эдгээр тоонууд урд байгаа гэдгийг анхаарах нь чухал бөгөөд гол мөрний бодит статистик нь өөдрөг бус байж магадгүй юм.

Хадны цаана Орос дахь нас баралт

Хэдийгээр 2017 онд байдал сайжрах нь дамжиггүй ч энэ нь хэцүү үйл явц хэвээр байгаа тул компани өөдрөг харагдаж байна. 1995-2005 оны хооронд нас баралтын түвшин 2.2-2.36 сая хүний ​​хооронд хэлбэлзэж байв. 2006 оноос эхлэн нас барагсдын тоо буурах төлөвтэй байна. Ийнхүү 2005 онд 2,303,935 хүн нас барж байсан бол 2006 онд 2,166,703, 2011 онд нэг цаг гаруйн дотор хоёр сая болж буурчээ. U 2013 болон 2014 х. Амиа алдагсдын тоо 1,871,809-аас 1,912,347 болж өссөн ч хүн амын өсөлт анх удаа нас баралтаас их болсон. 2014 оны үсрэлтийн дараа Орост нас баралтын статистик буурсаар байгаа нь 2015, 2016 оны тоо, мөн 2017 оны өмнөх мэдээллээс харагдаж байна. Харамсалтай нь ОХУ-д нас баралт буурч байгаа нь олон шалтгаантай, тэр дундаа өнгөрсөн хугацаанд тус бүс нутгийн зуны хүн амын дунд нас баралтын түвшин өндөр байсантай холбоотой юм. Тэтгэврийн насны хүмүүс өөрсдөө Орост нас барагсдын дунд хамгийн том хүн ам зүйн бүлэг юм.

Орос дахь нас баралт сараар

ОХУ-д 2006-2015 он хүртэлх арван жилийн хугацаанд сар бүр нас баралтын статистикийн дүн шинжилгээ нь аль саруудад хамгийн олон хүн нас бардаг болохыг тогтоох боломжтой юм. Сүүлийн хэдэн сарын хугацаанд нас баралтын хамгийн өндөр түвшин Сични хотод байсан нь нас баралтын дундаж 9.15% байна. Энэ тохиолдолд статистикийн алдааг засах нь чухал юм - цээжинд тохиолдсон олон нас баралт цээжнээс өнөөг хүртэл "шилжсэн" байдаг. Мөн олон хүн хус, өвсөнд үхдэг - гол мөрөнд нас баралтын дундаж нас баралтын 8.81% ба 8.53%. Хамгийн "аюулгүй" улирал бол хавар, навчис уналт бөгөөд гол мөрөнд нас барагсдын 7.85%, 7.89% нь тухайн сард унадаг.

Хэдхэн хоногийн өмнө The Daily Viz блогт өгөгдлийг энгийн бөгөөд үр дүнтэй дүрслэн харуулах жишээ болгон өргөн тархсанд хүндэтгэл үзүүлсэн бичлэг нийтлэгдсэн байна.

Дүрслэл нь хуанлийн зураг дээр дулааны зураг болгон хэрэгжүүлсэн хүмүүсийн өдрүүдийн алдартай газрын зураг байв. Тоонуудыг босоо байдлаар, саруудыг хэвтээ байдлаар харуулсан бөгөөд энэхүү энгийн хүснэгтийг хараад бид гэр бүлд хүүхэд төрүүлэх үүднээс өдөр бүр хэр их алдартай болохыг шууд дүгнэж болно.

Арван хэдэн цагийн дараа дүрслэл зохиогч нь ижил блогоос өөр нэг бичлэгийг нийтэлсэн бөгөөд энэ нь Оман руу spilnot нэвтрүүлсэн, гаралтын өгөгдөл, vikoristan-ийн талаар зохих ёсоор тайлбар өгөөгүй хүмүүсийн хувьд ялалт байгуулав. Асуудал нь нийтлэгдсэн багц өгөгдөлд тухайн өдөр төрсөн хүмүүсийн бодит тооны талаарх мэдээллийг агуулаагүй явдал байв. Мэдээллийг өөр байдлаар өгсөн - хүмүүсийн өдрүүдийн алдартай рейтингийн тэр өдөр ямар газар (зэрэглэл) байна.

Тиймээс чансааны эхний болон бусад байруудын хоорондох ялгаа асар том байж болно (хоёр удаа гэх мэт), эс тэгвээс өмхий үнэр нь бүгд нэг өнгөөр ​​ялгаатай байх болно. Өөрөөр хэлбэл, дүрслэл нь бодит өгөгдлийг орлуулсан мэдээллээр дамжуулан бодит өгөгдлийг төлөөлдөггүй.

Энэ асуудлын талаар бага зэрэг бодсоны эцэст би ийм дүрслэлийг эхнээс нь дуустал, өөрөөр хэлбэл өгөгдөл цуглуулахаас эхлээд дүрсийг дүрслэх хүртэлх хүчирхэг өгзөгийг тайлбарлахаар шийдсэн. Энэ өгзөг нь сайн, учир нь энэ нь нэг талаас гайхалтай энгийн, нөгөө талаас энэ нь маш сайн үр дүнтэй, бүрэн гүйцэд хийгдсэн төсөл юм.

Бүх үйлдлүүдийн хувьд би ийм ажлуудад ашигладаг уламжлалт байдлаар Processing дунд програмыг ашигласан (хэрэгсэл сонгох асуудалд анхаарлаа хандуулахгүй байх нь чухал).

Мөн төсөл дээр ажиллах үйл явц нь тогтвортой бүтэцтэй бөгөөд гурван үе шатаас бүрдэнэ.
мэдээлэл цуглуулах > өгөгдөл эрэмбэлэх > өгөгдлийг дүрслэх

Бүтэц нь удамшдаг.

1. Мэдээлэл цуглуулах

Мэдээллийг vk.com нийгмийн сүлжээний нягтлан бодогчдын профайлаас авах болно. Бидний аз болоход эдгээр API аргууд нь хувийн шинж чанартай бөгөөд програмын зөвшөөрөл шаарддаггүй бөгөөд энэ нь асуудлыг ихээхэн хялбаршуулах болно.

Эдгээр 100,000 профайл нь хуанли дахь хүмүүсийн өдрүүдийн хуваарилалтын үе үе ялгаатай байдлыг багасгах, үндсэн чиг хандлагыг тодорхойлоход хангалттай байх болно гэдгийг би тогтоосон. Тимээс багагүй цаг хугацаа, үзүүлэнг хэмнэхийн тулд бид 10,000 бичлэг цуглуулах болно. Дараа нь бид хөтөлбөрт шаардлагатай олон профайл нэмэх боломжтой болно.

Бид үндсэн функцийн эргэн тойронд програм бичих болно тохируулах(). Чиг үүрэг зурах()Хөтөлбөр нь хөдөлгөөнт дүрс гэхээсээ илүү хөдөлгөөнгүй дүрс үүсгэдэг тул бидэнд энэ хэрэггүй. Боловсруулах хөтөлбөрийн тайлан, бүтцийг төслийн вэбсайтаас үзэх боломжтой. Ашигласан бүх функцуудын тайлбар, синтаксийн маш сайн гарын авлага байдаг.

Нэмж дурдахад, бид өгөгдлийг цуглуулах, боловсруулах, дүрслэл үүсгэх программыг бичиж чадахгүй. "Заан" -ыг хэд хэдэн модулиудад хувааж үзье, ингэснээр боловсруулахад хялбар бөгөөд шийдлийг бий болгох, хэрэгжүүлэхэд нэг цаг хүрэхгүй хугацаа зарцуулах болно. Өөрөөр хэлбэл, өгөгдөл цуглуулж, үүнээс нэмэлт мэдээлэл цуглуулдаг програм бичиж эхэлье. Дараа нь бид хадгалсан цуглуулсан өгөгдөл дээр үндэслэн шаардлагатай зургийг үүсгэдэг програм бичих болно.

За, хоосон бичээд программдаа бэлдье.

Void setup() ( //манай үндсэн функц exit(); //програмаас гарах)

Одоо VK API хэрхэн ажилладагийг олж мэдье. Бид тусгай URL-ын цаана байгаа сервертэй холбогдож, бидний хүсэлтийн параметрүүдийг агуулсан болно:

http://api.vk.com/method/users.get.xml/uids=(энд бидэнтэй холбоо барих id-н жагсаалт энд байна. Користувачууд хэнээр дамжуулан бидэнтэй холбоо барина)&fields=(энд бидэнд Користувачийн профайлын талбаруудыг tsikavlyat хийх нэрсийн жагсаалт байна. )

Хэрэв бид .xml-гүй аргын нэрийг бичвэл серверийн хариу JSON форматтай мөр шиг харагдах болно. Энэ бол сонголтуудын нэг боловч энэ програмд ​​​​бид XML ашиглах болно. Бид vkontakte-ийн үүсгэн байгуулагч Павел Дуровын данснаас мэдээллийг устгахыг хүсч байгаа нь хүлээн зөвшөөрөгдөхүйц юм. Манай хаягууд:

http://api.vk.com/method/users.get.xml?uids=1&fields=bdate

Миний профайлын ID 1 тул бидний хувьд энэ талбар нь Үндэсний баяр юм - үүнийг нэрлэдэг огноо.

Энэ профайлын талаарх мэдээллийг олж авахыг хичээцгээе. Vikorist-ийн танилцуулсан функц loadStrings(), энэ нь параметрийн хүрээнд бидэн дээр дарахын тулд файлын хаягтай мөрийг авч, файлын оронд эгнээний массивыг эргүүлдэг.

Void setup() ( String user = loadStrings("http://api.vk.com/method/users.get.xml?uids=1&fields=bdate"); // бид println(хэрэглэгч); // харуулдаг. оронд нь массив (серверийн гаралт) консол гарах(); //програмаас гарах)

Програмыг консол дээр ажиллуулсны дараа манай серверийн гаралт гарч ирнэ:

"" "" " " " 1" " Павло" " Дуров" " 10.10.1984" " " ""

Дөрвөлжин гар дахь тоонууд нь массивын бичлэгийн дугаарыг (индекс) заадаг бөгөөд массивтай ямар ч холбоогүй болно. Сарвууны дэргэдэх өрөөнүүдийн эгнээ нь мөн арьстай. Vlasne, сарвууны хооронд байгаа хүмүүс бидний оронд байдаг. Биднийг талбайд тэмдэглэ

(Мөр). Эндээс иш татах мэдээлэл байна - Користувач №1-ийн төрсөн он сар өдрийг боломжийн форматаар: 1984 оны 10-р сарын 10-ны өдөр (Үүрийн гэгээ).

Бид гэртээ ирээд хүмүүсийн 10 мянган огноо цуглуулсан. Бид юунаас айдаг вэ? Бид хэрэглэгчийн ID-г 1-ээс шаардлагатай тоо хүртэл эрэмбэлдэг. Асуудал нь бүх ID-ууд ажилладаг профайлтай байдаггүй бөгөөд бүх бүртгэлд төрсөн өдрөө харуулахгүй байгаа явдал юм. Тиймээс бидэнд хоёр эмч хэрэгтэй байна: эхний эмч нь користувачуудын id-ийг дарааллаар нь сэргээж, нөгөө нь бидний зөв цуглуулсан огноог харгалзан үзэх бөгөөд ингэснээр бид даруй зогсох болно. Үнэн хэрэгтээ 10,000 огноо авахын тулд та 15,000 үүл бичлэгийг эрэмбэлэх хэрэгтэй.

Бид мөчлөг бичдэг:

Void setup() ( int count = 0; // амжилттай амьд үлдсэн хүмүүсийн эдгээгч (int i = 1; count)<= 10000; i++) { //перебираем id, не останавливаемся, пока счетчик успешных обращений меньше или равен 10000 String user = loadStrings("http://api.vk.com/method/users.get.xml?uids=" + str(i) + "&fields=bdate"); //загружаем информацию, подставляя счетчик на место id for (int j = 0; j < user.length; j++) { //перебираем все строки ответа if (user[j].indexOf("") != -1) ( // талбарыг хэрхэн байрлуулах вэ println(i + "\t" + count + "\t" + user[j]); // консолын тооллого++ дээр өгөгдөл харагдана; // дэлгэрэнгүй амжилтын эмчилгээ 1)))) exit(); //програмаас харагдана)

Эмчийн ач холбогдлыг хүндэтгэ би, бид үүнийг дараалан тавих үед энэ нь функцээр идэвхждэг str(). Энэ нь өгөгдлийн төрлийг тооноос мөр рүү хөрвүүлэхэд шаардлагатай. Үнэнийг хэлэхэд, програм нь ямар ч үйлдэл хийхгүйгээр бидний юу хүсч байгааг ойлгодог, эс тэгвээс өгөгдлийг нэг төрлөөс нөгөөд шилжүүлэх гэх мэт яриаг шууд удирддаг (зарим тохиолдолд автомат дамжуулалт ажиллахгүй байна є).

Мөрийн төрлүүдийг давтахдаа бид vikory аргыг ашигладаг indexOf(), энэ нь мөрийн параметрт заасан эргэлтийг аргыг тохируулах хүртэл эргүүлнэ. Манай мөрөнд мөр параметр байхгүй тул арга нь доор байгаа -1 утгыг эргүүлж, мөр нь бидэнд хэрэгтэй байгаа эсэхийг шалгахын тулд тохируулдаг.

Консолд оруулах шаардлагатай өгөгдлийг харуулсны дараа бид ахиц дэвшлийг хянахын тулд эдгээгчийн станц гэсэн нэмэлт мэдээллийг нэмнэ. Ариун сүмүүдийн янз бүрийн чиг үүргийн утгыг нэгтгэн харуулав println()зэрэгцүүлэн тусгаарласан "\ t"Таб тэмдэг нь юу гэсэн үг вэ?

Хэрэв бид хөтөлбөрийг даруй эхлүүлбэл эмч нарын үнэлэмж хурдан өөрчлөгдөнө гэдэгт итгэлтэй байна. 55 ID-г хайсны дараа миний сонголтонд 31 гаруй огноо сонгогдсон байна.

Одоо бүх зүйл хэвийн ажиллаж байгаа тул програмын файлд өгөгдлийг бүртгэх талаар санаа зовох шаардлагагүй болсон бололтой. Энэ объектыг хэнд зориулж бүтээсэн бэ? PrintWriter. Үүнийг ердийн өөрчлөлт гэж зарласан тул функцийн утгыг цонхонд зааж өгсөн болно. createWriter(файлын зам):

PrintWriter p = createWriter("data/bdates.txt");

Энэ тохиолдолд бид файлыг "folder-programs/data/bdates.txt" хаягтай холбосон объектыг "p" гэж нэрлэдэг бөгөөд энэ нь бидэнд хэрэгтэй зүйлээ энэ файлд бичих боломжийг олгодог. Yak mi ce robimo? Энэ аргыг манай объектод хэрэглэж болно println(), энэ нь нэг функцтэй адилхан ажилладаг бөгөөд зөвхөн өгөгдлийг консол руу биш, харин файл руу гаргадаг. Энэ нь дараах байдалтай харагдаж байна.

P.println(өгөгдсөн);

Бид файлтайгаа ажиллаж дууссаны дараа үүнтэй ажиллах ажлыг зөв хийх хэрэгтэй, эс тэгвээс түүнд мэдээлэл бичихгүй. Ийм тэмдэглэл хийхийг хичээ:

P.flush(); p.close();

Файлтай ажиллах ажлыг нэгэн зэрэг зөв гүйцэтгэхийн тулд эдгээр хоёр функцийг үргэлж нэгтгэдэг. Манай хөтөлбөр:

<= 10000; i++) { //перебираем id, не останавливаемся, пока счетчик успешных обращений меньше или равен 10000 String user = loadStrings("http://api.vk.com/method/users.get.xml?uids=" + str(i) + "&fields=bdate"); //загружаем информацию, подставляя счётчик на место id for (int j = 0; j < user.length; j++) { //перебираем все строки ответа if (user[j].indexOf("") != -1) ( //p.println(user[j]) талбарыг хэрхэн байрлуулах вэ, ингэснээр бид дарж болно; //үр дүнг println(count) файлд бичих; //файлыг файлд харуулах явцын тоог хянах консол++ ; / /амжилтыг 1-ээр нэмэгдүүлэх ) ) ) p.flush();p.close(); //файлтай ажиллах exit(); //програмаас гарах )

Мэдээлэл цуглуулахдаа консол дээр эгнээний үнэ цэнэ болон эмчийн дугаарыг харуулсан болохыг бид харсан: консол дээр хэт олон өгөгдлийг харуулснаар анод нь роботыг програмаар цайруулж чаддаг тул шаардлагагүй зүйлээр хүрээлэгдсэн байх нь дээр. цуглуулсан мэдээллийн огнооны эмч

Өөр юу хэрэгтэй байгааг би гайхаж байна уу? Та програмыг эхлүүлж болно! Тэгээд тийм, үгүй. Алсын серверийг туршихдаа сервер дагаж мөрдөхгүй байх тохиолдолд үргэлж болгоомжтой байх хэрэгтэй. Бид сервер рүү хүсэлт илгээсэн нь тодорхой байна, үүнийг баталгаажуулсан эсэхийг шалгасан бөгөөд устгах боломжгүй. Нэг цаг орчмын дараа програм серверийг унтрааж, зүгээр л гарах болно. Юу тохиолдох вэ? Ажэ ми користувачын тухай мэдээллийг аваагүй, манай массив хоосон байна. Хэрэв програм дахин галзуурах юм бол уг програм нь консол дээр эвдэрсэн тухай мессежийг харж, гацаж эхэлнэ. Энэ нь тохиолдохгүй, эсвэл болохгүй, дараа нь бид програмыг дахин эхлүүлж, шалгаж, сервер бидний бүх 15,000 хүсэлтийг баталгаажуулаасай гэж залбирах болно.

Сохор хувьцаанд найдахгүйн тулд өршөөлийн боловсруулалтаас олдсон. Өршөөлийг дараах бичилтээр олгоно.

Оролдоод үзээрэй ( // энд дарж болох код байна ) catch ( энд анхааруулгын төрөл ) ( // энд анхааруулга болсон үед сонгож болох код байна )

Өршөөл үзүүлэх хөтөлбөр:

Void setup() ( PrintWriter p = createWriter("data/bdates.txt"); //файлаас өгөгдлийг харуулах объект int count = 0; //серверт амжилттай тайлангуудын эмч (int i = 1; count) )<= 10000; i++) { //перебираем id, не останавливаемся, пока счетчик успешных обращений меньше или равен 10000 String user = loadStrings("http://api.vk.com/method/users.get.xml?uids=" + str(i) + "&fields=bdate"); //загружаем информацию, подставляя счётчик на место id try { for (int j = 0; j < user.length; j++) { //перебираем все строки ответа if (user[j].indexOf("") != -1) ( //p.println(user[j]) талбарыг хэрхэн байрлуулах вэ, ингэснээр бид дарж болно; //үр дүнг println(count) файлд бичих; //файлыг файлд харуулах явцын тоог хянах консол++ ; / /амжилтыг 1)))) catch (Үл хамаарах e) ()) p.flush();p.close(); //файлтай ажиллахыг дуусгах exit(); //exit програмууд)

Одоо, массыг ачаалах үед нунтаглагч ажиллахаа больсон бол (массив хоосон байгаа тул) код гарч ирнэ ... код харагдахгүй, програм нь нунтаглагчийн тухай мэдэгдлийг харуулдаг, гэхдээ андуурч болохгүй. Бид зүгээр л хүсэлтийг үл тоомсорлож, цаашаа явна - бидний хийх ёстой зүйл бол өөр луйварчингаас мэдээлэл авах явдал юм. Өршөөлийн төрлийг зааж өгсөн Үл хамаарах зүйлЭнэ нь шагнал эсвэл ялалт аль алиныг нь "барьж авдаг" гэсэн үг юм. Бичлэг дШаардлагатай нунтаглалтын төрлөөс хамааран нунтаглалтын талаарх мэдээллийг бүртгэх програмыг өөрчлөх шаардлагатай. Бид тэтгэмжийн дээж авахдаа өөрчлөлтийн үнэд хүрч болох ч эсэргүүцэх шаардлагагүй.

2. Өгөгдлийг эрэмбэлэх

Хөтөлбөр эхэлснээс хойш цаг тутамд (өдөрөөс илүүгүй утсаар ярих) програм дуусах бөгөөд бид консол дээр эцсийн 10,000 дугаарыг харах болно. Энэ нь цуглуулсан өгөгдлийг эрэмбэлэх боломжтой гэсэн үг юм. Файлыг текст засварлагчаар нээж, бидний хүчин чармайлтын үр дүнг харна уу:

Юу болсон бэ? Тийм ээ, бид XML шошго ашиглан файлд өгөгдөл бичсэнээ мартсан байна. Асуудалгүй! Аливаа текст засварлагч нь автоматаар засах функцтэй бөгөөд үүнээс гадна та хадгалсан мэдээллийн файлыг цэвэрлэх боломжтой. Хатуухан хэлэхэд бид өгөгдөл цуглуулах шатандаа байгаа програмуудыг программчлан "барьж" болох боловч зарчмын хувьд хялбар, цаг хугацаа хэмнэхийн тулд бэлэн байгаа хэрэгслийг ашиглах нь тийм ч хурдан биш байх болно.

Файлыг цэвэрлэсний дараа хадгалаад хаах хэрэгтэй. Одоо програмуудыг уншихад хялбар болсон.

3. Өгөгдлийн дүрслэл

Тэгээд одоо жижиг зүйл рүүгээ орцгооё. Яг одоо бид файлаа нээж, энэ өдөр хэдэн хүн мэндэлснийг харах хэрэгтэй. Хуучин танил функцийг ашиглан файл нээх loadStrings(). Агуу өдөр төрсөн користувачуудын тоог хэмнэхийн тулд бид натурал тоог ашигладаг.

Int хүснэгт = шинэ int

Бид массивын хэмжээг 12-оос 31 гэж тодорхойлсон. Одоогоор бидэнд 12 сар, дээд тал нь 31 хоног байна. Үзэл санаанаас болоод 31 ховдог хүмүүсийн буруу биш, олон сараар массив дэндүү урт болохоор биднийг шүүмжилж байгаа нь буруу биш.

Манай хөтөлбөр хэрхэн хэрэгжиж байна вэ? Бид огноог авч, ямар өдөр, сар болохыг тодорхойлж, массивын дунд хэсгийг нэгээр нэмэгдүүлэх ёстой.

Мөрийг өдөр, сар, хувь заяаны тоонд хуваахын тулд бид аргыг ашиглана салгах(). Энэ нь эгнээний массивыг эргүүлж, мөр хуваагчийг аргумент болгон авдаг: заавар

Мөр s="00010010".split("1");
массивыг цохив сач холбогдол
"000" "00" "0"

Энэ нь бидний практикт юу гэсэн үг вэ? Бид массивын эгнээ аваад цэгийн тэмдгийн тусламжтайгаар тусгаарлагч болгон хуваана. Техникийн нэг асуудал бий: захиалгын цэгийн тэмдэг нь аливаа тэмдгийн утга юм. Тийм ч учраас "." Аргумент болгон бид "\\" гэж дамжуулдаг. - Энэ тэмдэглэгээ нь бидэнд хэрэгтэй цэгийн тэмдэг гэсэн үг. Ингэж оруулна уу:

< file.length; i++) { //перебираем все строки файла String date = file[i].split("\\."); //переводим строку в массив, содержащий числа даты } exit(); //выходим из программы }

Одоо дунд нь огноотухайн сарын өдрийн дугаар бүхий эгнээнд байрлуулж, дотор огноо- Сарын дугаар. Бид массын жинг нэмэгдүүлэх үүрэгтэй ширээнэгээр:

Хүснэгт++;

Шуудангийн хаягийг огноо болгон зааж өгснөөр бид нэмэлт функц ашиглан тооны мөрийг орчуулдаг int(), бас нэгийг нь аваад яв. Нэгийг нь авах цаг болсон уу? Дараа нь массивын дунд нь тэгээс эхэлнэ. Mi in the Divzhin 12, Tse Detski, Scho of the Success Masiv May, Tummarzi VID 0-ээс 11. VIDMINA VID Mysyatsiv, Shcho Numerusu VID 1-ээс 12 хүртэл. Цу niridpov-ийн тухай, Нерд нэг удаа Pam'yatati биш юм. .

Тийм үү? Энэ нь зөв, огт биш. Хэрэв та програмыг нэг дор ажиллуулбал хэлэлцээрийг харах болно. Үнэн бол бидний мэдээллийн багц тийм ч тохиромжтой биш юм. Зарим тодорхойгүй шалтгааны улмаас зарим користувачууд төрсөн огнооны талбарт шаардлагагүй тоонууд байдаг: 666.666 эсвэл 32/13/888888888. Заримдаа, жишээлбэл, тав дахь хөхийг хасч төрсөн користувачийн мэдрэмжийг авч болно. Тэдгээрийг эрэмбэлэхийн тулд та 12-оос дээш сар, 31-ээс дээш хоног, тэгээс бага буюу тэнцүү бүх утгыг нэмэх хэрэгтэй.

Хэрэв ((int(огноо))<= 12) && (int(date) >0) && (int(огноо)<= 31) && (int(date) >0)) ( //тооны хувьд table++; //хүснэгтийн хэмжээг 1-ээр нэмэгдүүлэх)

Би хөтөлбөрийг тоймлон хэлье:

Void setup() ( String file = loadStrings("data/bdates.txt"); // өгөгдлийн файлыг татаж авах int table = new int; for (int i = 0; i)< file.length; i++) { //перебираем все строки файла String date = file[i].split("\\."); //переводим строку в массив, содержащий числа даты if ((int(date) <= 12) && (int(date) >0) && (int(огноо)<= 31) && (int(date) >0)) ( //хүснэгтэнд бүх зүйл эмх цэгцтэй байгаа тул++; //хүснэгтийн хэмжээг 1-ээр нэмэгдүүлэх)) exit(); //програмаас харагдана)

Одоо, хэрэв өгөгдлийг цуглуулж, програмын санах ойд хадгалсан бол та бүтээлчээр ажиллаж эхлэх боломжтой - будах. Нэгдүгээрт, энэ нь бидний будсан өнгөнөөс хамаарна: Би VK компанийн цэнхэр өнгийг авсан: RGB 54, 99, 142. Гурван нууц дугаарыг бичихгүйн тулд өнгийг өөрчилье:

Өнгө c = өнгө(54, 99, 142);

Мөн бидэнд (уламжлал ёсоор, хөтөлбөрийн эхэнд) бидний дүрс ямар өргөн, өндөр байхыг тодорхойлох шаардлагатай. Үүний тулд бид функц бичнэ:

Хэмжээ (өргөн, өндөр);

Бидний өргөн, өндөр ямар байх вэ? Дулааны зураглалын дунд хэсэг нь 40 пикселийн өргөн, дундын хоорондох зайд нэг пиксел байна гэж бодъё. Саруудыг өргөнөөр байрлуулсан. Захын ирмэгийн талаар бүү мартаарай (10 пиксел). 20+41*12 гэж оруулна уу. Хэрэв та оюун ухаандаа хутгалдах эсвэл тооны машин нээхийг хүсэхгүй байгаа бол үүнийг функцийн аргумент болгон бичиж болно. println(20+41*12);Мөн гаралтыг сонгоно уу – 512. Энэ бол зургийн өргөн юм. Дунд хэсэгт нь 20 пиксел, ирмэг дээр нь ижил захын зайд тохируулснаар дараахыг сонгоно уу:

Хэмжээ (512, 671);

Одоо багаа хурдан цэгцэлцгээе гарах();Програмын төгсгөлд бид дууссаны дараа програмаас гарахгүйн тулд дараах кодыг ажиллуулна уу.

< file.length; i++) { //перебираем все строки файла String date = file[i].split("\\."); //переводим строку в массив, содержащий числа даты if ((int(date) <= 12) && (int(date) >0) && (int(огноо)<= 31) && (int(date) >0)) ( //хүснэгт++ дээрх бүх зүйл тоон дээр тулгуурладаг; //хүснэгтийн хэмжээг 1-ээр нэмэгдүүлэх) ) өнгө c = өнгө(54, 99, 142); // Өнгө)

Хүрээний хэмжээг зааж өгсний дараа би цагаан дэвсгэр тавих тушаалыг өгсөн: хэрэв бид өнгийг нэг тоогоор зааж өгвөл 0 (хар) -аас 255 (цагаан) хүртэлх саарал өнгийн сүүдэр гэж хүлээн зөвшөөрөгдөнө. Хөтөлбөрийг эхлүүлэхэд бидэнд хэрэгтэй хэмжээтэй цагаан хэсэг бүхий цонх нээгдэж магадгүй юм.

Энэ нь хэтэрхий жижиг байна. Бид яаж зурах вэ? Бид массиваар дамжин өнгөрдөг ширээ- мөр бүрээр (сараар), мөр тус бүрээр (сарын өдөр) дундуур. Энэ нь шаардлагатай газар болон тэгш өнцөгт 40-ийн 20-ийн шаардлагатай өнгөөр ​​будаж, X байрлалыг хэрхэн тооцдог вэ? 10 (оролт) + 41 (өргөн + хоорондын зай) * i (сар бүр). Y байрлал? 10 (оролт) + 21 (өндөр + хоорондын зай) * j (өдөр эмч). Шулуун зүсэгч нь функцийг харуулдаг шулуун (x, y, өргөн, өндөр); -

Шулуун(10+41*i, 10+21*j, 40, 20);

Хөтөлбөр:

Void setup() ( size(512, 671); //арын хэмжээг тохируулах(255); //арын өнгө - цагаан String file = loadStrings("data/bdates.txt"); //өгөгдлийн файлыг тохируулах int table = new int;for (int i = 0; i< file.length; i++) { //перебираем все строки файла String date = file[i].split("\\."); //переводим строку в массив, содержащий числа даты if ((int(date) <= 12) && (int(date) >0) && (int(огноо)<= 31) && (int(date) >0)) ( //хүснэгт++ дээрх бүх зүйл тоон дээр тулгуурладаг; //хүснэгтийн хэмжээг 1-ээр нэмэгдүүлэх) ) өнгө c = өнгө(54, 99, 142); // Өнгө (int i = 0; i< table.length; i++) { //пробегаемся по месяцам for (int j = 0; j < table[i].length; j++) { //пробегаемся по дням rect(10+41*i, 10+21*j, 40, 20); //рисуем прямоугольник в нужной позиции } } }

Энэ кодыг ажиллуулсны дараа бид талбайг арилгаж, тойрог бүхий тэгш өнцөгтүүдээр гайхалтайгаар чимэглэгддэг. Эхлээд зураачдад тушаал нэмж тоймыг цэгцэлцгээе noStroke();. Одоо өнгөө тохируулж, дүүргэцгээе: бөглөх(в);

Гайхалтай. Одоо талбай нь цагаан зайтай үзэсгэлэнтэй цэнхэр хавтангаар хучигдсан байдаг. Одоо бид хүснэгтийн утгыг дүүргэх өнгө болгон кодлох хэрэгтэй. Нэмэлт ойлголт өгөхөд бид талархаж байна. Өнгөний тод байдал нь 0-ээс 255 хүртэлх утгыг авдаг. Бичлэг дүүргэх(c, 10);мөсийг хар хөхөвтөр болгож, тэмдэглэнэ дүүргэх(c, 240);Орон зайг бүхэлд нь цэнхэр өнгөөр ​​нь өг. За, үзэгдэх хүрээ нь 0..255 байна. Манай массив дахь утгын хүрээ илүү том (эсвэл бага) байна. Массивын хамгийн их утгыг бид мэднэ гэж бодъё. Хамгийн бага нь мэдээж тэг байх болно. Бид масштабыг өөрчилсөн (өсгөх) тул массиваас утгуудыг 0.255 мужид оруулах шаардлагатай байна. Үүний үндсэн функцийн газрын зураг (утга, гаралтын мужын эхлэл, гаралтын мужын төгсгөл, шинэ мужын эхлэл, шинэ мужын төгсгөл):

Газрын зураг(хүснэгт[i][j], 0, 1000, 0, 255);

Энд бид тэтгэмжийг цуглуулсан бөгөөд ингэснээр массивын хамгийн их утга нь 1000 байна. хүснэгт[i][j] 1000 функц нь 255-ыг эргүүлэх ба хэрэв утга 0 бол тэгийг эргүүлнэ.

Бид дэлхийн массивын хамгийн бага ба хамгийн их утгыг хэрхэн гаргаж авах вэ? Нэг хэмжээст массивын хувьд функцууд нь ижил байна мин()і хамгийн их (). Використовуемо їх. Бид мөчлөгийг "сараар" дамжуулж, "сар" арьсны хамгийн бага ба хамгийн их утгыг (энэ нь нэг төрлийн масс болгон дунд хэсэгт шингэдэг) массив дахь хамгийн бага буюу хамгийн их утгыг хэмнэдэг өөрчлөлтүүдээр тэнцүүлдэг. Өөр нэг чухал үгийг мартаж болохгүй: заримдаа мэдээллийн сүлжээнд буруу огноо олддог. Хүмүүсийн 31 навч унах буюу 30 догшин огноог зааж өгөхийг хүсч байна. Энэ баримтыг үл тоомсорлож, бид үл мэдэгдэх огнооны утгыг тэг болгосон.

Хүснэгт = 0; //30 ширүүн хүснэгт = 0; //31 ширүүн хүснэгт = 0; //31 улирлын хүснэгт = 0; //31 херубын хүснэгт = 0; //31 veresnya хүснэгт = 0; //31 навч унах in mi = хүснэгт; //Хамгийн бага утга int ma = хүснэгт; //хамгийн их утга (int i = 0; i< table.length; i++) { if ((min(table[i]) < mi) && (min(table[i]) >0)) ( //энэ мөрийн хамгийн бага утга нь урсгалын минимумаас бага ба тэгээс их байхаас үл хамааран mi = min(хүснэгт[i]); //хамгийн бага утгыг боловсруулах ) if (max(хүснэгт[i) ]) > ma) ( // учир нь мөрийн хамгийн их утга нь одоогийн максимумаас их байна ma = max(хүснэгт[i]);//утгыг дээд зэргээр олох ) ) println(mi + " " + ma) ; //үзэгдэх утга

Миний үнэ цэнэ 14 ба 47 болсон. Зарчмын хувьд энэ нь хамаагүй, учир нь бид өөрчлөгдөж болох утгуудын утгыг засах боломжтой. Одоо та ширээний голд арьсны өвчнийг эмчлэх хэрэгтэй, тэгвэл. Шулуун гэдсийг будахаас өмнө дүүргэгчээ оруулна.

Void setup() ( size(512, 671); //арын хэмжээг тохируулах(255); //арын өнгө - цагаан String file = loadStrings("data/bdates.txt"); //өгөгдлийн файлыг тохируулах int table = new int;for (int i = 0; i< file.length; i++) { //перебираем все строки файла String date = file[i].split("\\."); //переводим строку в массив, содержащий числа даты if ((int(date) <= 12) && (int(date) >0) && (int(огноо)<= 31) && (int(date) > < table.length; i++) { if ((min(table[i]) < mi) && (min(table[i]) >0)) ( //энэ мөрийн хамгийн бага утга нь урсгалын минимумаас бага ба тэгээс их байхаас үл хамааран mi = min(хүснэгт[i]); //хамгийн бага утгыг боловсруулах ) if (max(хүснэгт[i) ]) >< table.length; i++) { //пробегаемся по месяцам for (int j = 0; j < table[i].length; j++) { //пробегаемся по дням fill(c, map(table[i][j], 0, ma, 0, 255)); //считаем заливку rect(10+41*i, 10+21*j, 40, 20); //рисуем прямоугольник в нужной позиции } } }

Хөтөлбөрийг эхлүүлсний дараа бид юу хийх ёстой вэ? Нэг өдөр төрсөн хүмүүсийн тооноос шалтгаалж хавтангууд өөр өнгөтэй болсон. Хоёрдугаар сарын 29-нд тод өнгө авах боломжтой байх нь бас чухал юм. Мэдээжийн хэрэг, энэ өдөр төрсөн хүмүүсийн тоо хамгийн бага бөгөөд энэ нь бид харуулах боломжтой өнгөний ихэнх хэсгийг зарцуулдаг гэсэн үг юм (утгууд нь 14-өөс эхэлдэг, бидний хамгийн бага нь 0 - Энэ нь бид үүнийг хийдэг гэсэн үг юм. Ойролцоогоор 0-ээс 85 хүртэлх утгыг шууд харахад ойлголтын яг утгыг агуулаагүй. Эмх замбараагүй байдал Функцийн хамгийн бага утгад хүргэсэн. газрын зураг()тэг биш, харин 12, ингэснээр хавтанцар 29 нь мөсөн өнгөтэй болно. Бидний хамгийн бага нь тэг биш 12 болж байгаа тул 0 утгатай эдгээр хавтангийн харагдах байдал сөрөг байх болно. Мэдлэгийн сөрөг утгатай хэсгүүд нь мөчлөгөөр гарч ирдэг (-5 - бүгд адилхан, энэ нь 250!), бороотой өдрүүд цагаан биш, харин харанхуй байх болно. Ямар төрлийн “тэг” өдрүүдийг биширч болохгүйг танд хэлье.

Void setup() ( size(512, 671); //арын хэмжээг тохируулах(255); //арын өнгө - цагаан String file = loadStrings("data/bdates.txt"); //өгөгдлийн файлыг тохируулах int table = new int;for (int i = 0; i< file.length; i++) { //перебираем все строки файла String date = file[i].split("\\."); //переводим строку в массив, содержащий числа даты if ((int(date) <= 12) && (int(date) >0) && (int(огноо)<= 31) && (int(date) >0)) ( //хүснэгтийн тоонд бүх зүйл эмх цэгцтэй байгаа тул++; //хүснэгтийн хэмжээг 1-ээр нэмэгдүүлэх) ) хүснэгт = 0; //30 ширүүн хүснэгт = 0; //31 ширүүн хүснэгт = 0; //31 улирлын хүснэгт = 0; //31 херубын хүснэгт = 0; //31 veresnya хүснэгт = 0; //31 навч унах in mi = хүснэгт; //Хамгийн бага утга int ma = хүснэгт; //хамгийн их утга (int i = 0; i< table.length; i++) { if ((min(table[i]) < mi) && (min(table[i]) >0)) ( //энэ мөрийн хамгийн бага утга нь урсгалын минимумаас бага ба тэгээс их байхаас үл хамааран mi = min(хүснэгт[i]); //хамгийн бага утгыг боловсруулах ) if (max(хүснэгт[i) ]) > ma) ( // учир нь мөрийн хамгийн их утга нь одоогийн максимумаас их байна ma = max(хүснэгт[i]);//максимумын утга ) ) өнгө c = өнгө(54, 99, 142) ; noStroke(); хувьд (int i = 0; i< table.length; i++) { //пробегаемся по месяцам for (int j = 0; j < table[i].length; j++) { //пробегаемся по дням if (table[i][j] >0) ( бөглөх(c, газрын зураг(хүснэгт[i][j], 12, ma, 0, 255)); //бөглөх нь чухал rect(10+41*i, 10+21*j, 40, 20) ; //шаардлагатай байрлалд жижиг тэгш өнцөгт хэлбэртэй)))

Ale scho mi bachimo? Олон хоногийн дундуур 1 дэх өдөр онцгой харагддаг. Энэ чиг хандлага илүү олон хувиараа хөдөлмөр эрхлэгчдийн дунд үргэлжилж байна. Би 300,000 дансны мэдээлэл цуглуулахад 1 дэх өдөр өөрөө гүн цэнхэр өнгөтэй, бусад өнгө нь цайвар өнгөтэй байв. Энэхүү үзэгдэл нь үндэсний баяраа нийтлэхээс айхгүйгээр жагсаалтын эхний дугаарыг хулгайлсан користувач нарын үйлдэлтэй холбоотой нь ойлгомжтой. Шинэ голын хүмүүсийн үнэнийг өрөвдмөөр симуляторуудаас сургах боломжгүй юм. Багцтай тааруулахын тулд дунд хэсэгт нэмсэн өгөгдлийг сонгоход хангалттай ширээутга нь тэг байна. Зургийг хадгалахын тулд vikory баг saveFrame("frame.jpg");жишээ нь, хөтөлбөрүүд. Бид програмаас тусгай файлтай болно.

Би програмын кодыг нэмнэ:

Void setup() ( size(512, 671); //арын хэмжээг тохируулах(255); //арын өнгө - цагаан String file = loadStrings("data/bdates.txt"); //өгөгдлийн файлыг тохируулах int table = new int;for (int i = 0; i< file.length; i++) { //перебираем все строки файла String date = file[i].split("\\."); //переводим строку в массив, содержащий числа даты if ((int(date) <= 12) && (int(date) >0) && (int(огноо)<= 31) && (int(date) >0)) ( //хүснэгтийн тоонд бүх зүйл эмх цэгцтэй байгаа тул++; //хүснэгтийн хэмжээг 1-ээр нэмэгдүүлэх) ) хүснэгт = 0; //1 өнөөдрийн хүснэгт = 0; //30 ширүүн хүснэгт = 0; //31 ширүүн хүснэгт = 0; //31 улирлын хүснэгт = 0; //31 херубын хүснэгт = 0; //31 veresnya хүснэгт = 0; //31 навч унах in mi = хүснэгт; //Хамгийн бага утга int ma = хүснэгт; //хамгийн их утга (int i = 0; i< table.length; i++) { if ((min(table[i]) < mi) && (min(table[i]) >0)) ( //энэ мөрийн хамгийн бага утга нь урсгалын минимумаас бага ба тэгээс их байхаас үл хамааран mi = min(хүснэгт[i]); //хамгийн бага утгыг боловсруулах ) if (max(хүснэгт[i) ]) > ma) ( // учир нь мөрийн хамгийн их утга нь одоогийн максимумаас их байна ma = max(хүснэгт[i]);//максимумын утга ) ) өнгө c = өнгө(54, 99, 142) ; noStroke(); хувьд (int i = 0; i< table.length; i++) { //пробегаемся по месяцам for (int j = 0; j < table[i].length; j++) { //пробегаемся по дням if (table[i][j] >0) ( бөглөх(c, газрын зураг(хүснэгт[i][j], 12, ma, 0, 255)); //бөглөх нь чухал rect(10+41*i, 10+21*j, 40, 20) ; //шаардлагатай байрлал дахь жижиг тэгш өнцөгт)) saveFrame("frame.jpg"); //хадгалах)

Бэлэн! Бид хэтэрхий бага мэдээлэл цуглуулсан тул гарч ирсэн зургууд нь чиг хандлага нь тодорхой болоогүй байна. 300,000 дансанд зориулсан тэнхлэгийн зураг (үгүй ээ, би өгөгдөл цуглуулахын тулд 100 чулууг шалгаагүй, гэхдээ серверт асинхрон хүсэлт илгээсэн - магадгүй би тэдгээрийн хэрэгжилтийн талаар Процесс дээр бичих болно), энэ нь чиг хандлагыг тодорхой харуулж байна (би тэгээгүй ч гэсэн) 't skrava ):

Мөн баригдсан дүрслэлд дүн шинжилгээ хийх нь таны мөрөн дээр унадаг! ;]