{"id":10718,"date":"2026-08-12T19:00:14","date_gmt":"2026-08-12T16:00:14","guid":{"rendered":"https:\/\/lingualand.gr\/new\/exercises\/a1plus-present-perfect-continuous-03\/"},"modified":"2026-08-12T19:00:14","modified_gmt":"2026-08-12T16:00:14","slug":"a1plus-present-perfect-continuous-03","status":"publish","type":"page","link":"https:\/\/lingualand.gr\/new\/exercises\/a1plus-present-perfect-continuous-03\/","title":{"rendered":"Present Perfect Simple or Continuous 3"},"content":{"rendered":"<div class=\"lingualand-a1plus-exercise-page\" style=\"max-width:1100px;margin:20px auto;\"><iframe title=\"Present Perfect Simple or Continuous 3\" srcdoc=\"&lt;!doctype html&gt;&lt;html lang=&quot;en&quot;&gt;&lt;head&gt;&lt;meta charset=&quot;utf-8&quot;&gt;&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width,initial-scale=1&quot;&gt;&lt;title&gt;Present Perfect Simple or Continuous 3&lt;\/title&gt;&lt;style&gt;:root{--b:#173f73;--g:#16845b;--r:#bb3344;--bg:#f4f8fc}*{box-sizing:border-box}body{margin:0;background:var(--bg);font:17px\/1.45 Arial,sans-serif;color:#182536}.page{max-width:820px;margin:24px auto;padding:24px}.brand{background:var(--b);color:#fff;padding:20px 24px;border-radius:16px}.brand h1{margin:0 0 6px;font-size:27px}.card{background:#fff;margin-top:18px;padding:24px;border-radius:16px;box-shadow:0 5px 22px #173f7320}.q{padding:14px 0;border-bottom:1px solid #dce6f1}.q p{margin:0 0 8px}.q label{display:block;padding:7px 10px;margin:5px 0;border-radius:8px;background:#f6f9fc;cursor:pointer}.q.correct{border-left:5px solid var(--g);padding-left:12px}.q.wrong{border-left:5px solid var(--r);padding-left:12px}.feedback{font-weight:bold;margin-top:6px}.controls{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}button{border:0;border-radius:9px;padding:11px 16px;font-weight:bold;cursor:pointer;background:var(--b);color:#fff}button.secondary{background:#617388}.score{font-size:21px;font-weight:bold;margin-top:18px}@media(max-width:600px){.page{padding:12px}.card{padding:16px}}&lt;\/style&gt;&lt;\/head&gt;&lt;body&gt;&lt;div id=&quot;accessGate&quot; style=&quot;min-height:100vh;display:grid;place-items:center;padding:20px;background:#eef3f8;color:#172033;font-family:Arial,sans-serif&quot;&gt;&lt;form id=&quot;accessForm&quot; style=&quot;width:min(420px,100%);background:#fff;border-radius:14px;padding:24px;box-shadow:0 4px 16px #243a8f22&quot;&gt;&lt;h1 style=&quot;margin:0 0 10px;color:#243a8f;font-size:1.45rem&quot;&gt;A1+ Exercise Access&lt;\/h1&gt;&lt;p style=&quot;margin:0 0 16px&quot;&gt;Enter your access key to open the exercise.&lt;\/p&gt;&lt;input id=&quot;accessKey&quot; type=&quot;password&quot; autocomplete=&quot;off&quot; style=&quot;width:100%;padding:12px;border:1px solid #aab3c2;border-radius:9px;font-size:1rem&quot; aria-label=&quot;Access key&quot;&gt;&lt;button type=&quot;submit&quot; style=&quot;margin-top:14px;width:100%;padding:12px;border:0;border-radius:9px;background:#243a8f;color:white;font-weight:bold;cursor:pointer&quot;&gt;Open exercise&lt;\/button&gt;&lt;div id=&quot;accessMessage&quot; style=&quot;min-height:22px;margin-top:12px;color:#b91c1c;font-weight:bold&quot; aria-live=&quot;polite&quot;&gt;&lt;\/div&gt;&lt;\/form&gt;&lt;\/div&gt;&lt;div id=&quot;exerciseApp&quot; hidden&gt;&lt;main class=&quot;page&quot;&gt;&lt;header class=&quot;brand&quot;&gt;&lt;h1&gt;Present Perfect Simple or Continuous&lt;\/h1&gt;&lt;div&gt;A1+ Interactive Exercise \u00b7 Set 3&lt;\/div&gt;&lt;\/header&gt;&lt;div class=&quot;card&quot;&gt;&lt;p&gt;Choose the correct answer.&lt;\/p&gt;&lt;section class=&quot;q&quot; data-answer=&quot;0&quot;&gt;&lt;p&gt;&lt;b&gt;1.&lt;\/b&gt; Anna\u2019s cousin looks tired because Anna\u2019s cousin ____ for two hours.&lt;\/p&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q0&quot; value=&quot;0&quot;&gt; has been playing tennis&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q0&quot; value=&quot;1&quot;&gt; has played tennis&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q0&quot; value=&quot;2&quot;&gt; is playing tennis&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q0&quot; value=&quot;3&quot;&gt; was playing tennis&lt;\/label&gt;&lt;div class=&quot;feedback&quot;&gt;&lt;\/div&gt;&lt;\/section&gt;\n&lt;section class=&quot;q&quot; data-answer=&quot;3&quot;&gt;&lt;p&gt;&lt;b&gt;2.&lt;\/b&gt; Ben\u2019s cousin looks tired because Ben\u2019s cousin ____ for two hours.&lt;\/p&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q1&quot; value=&quot;0&quot;&gt; has cleaned the kitchen&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q1&quot; value=&quot;1&quot;&gt; is cleaning the kitchen&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q1&quot; value=&quot;2&quot;&gt; was cleaning the kitchen&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q1&quot; value=&quot;3&quot;&gt; has been cleaning the kitchen&lt;\/label&gt;&lt;div class=&quot;feedback&quot;&gt;&lt;\/div&gt;&lt;\/section&gt;\n&lt;section class=&quot;q&quot; data-answer=&quot;2&quot;&gt;&lt;p&gt;&lt;b&gt;3.&lt;\/b&gt; Clara\u2019s cousin looks tired because Clara\u2019s cousin ____ for two hours.&lt;\/p&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q2&quot; value=&quot;0&quot;&gt; is watching documentaries&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q2&quot; value=&quot;1&quot;&gt; was watching documentaries&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q2&quot; value=&quot;2&quot;&gt; has been watching documentaries&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q2&quot; value=&quot;3&quot;&gt; has watched documentaries&lt;\/label&gt;&lt;div class=&quot;feedback&quot;&gt;&lt;\/div&gt;&lt;\/section&gt;\n&lt;section class=&quot;q&quot; data-answer=&quot;1&quot;&gt;&lt;p&gt;&lt;b&gt;4.&lt;\/b&gt; Daniel\u2019s cousin looks tired because Daniel\u2019s cousin ____ for two hours.&lt;\/p&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q3&quot; value=&quot;0&quot;&gt; was reading novels&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q3&quot; value=&quot;1&quot;&gt; has been reading novels&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q3&quot; value=&quot;2&quot;&gt; has read novels&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q3&quot; value=&quot;3&quot;&gt; is reading novels&lt;\/label&gt;&lt;div class=&quot;feedback&quot;&gt;&lt;\/div&gt;&lt;\/section&gt;\n&lt;section class=&quot;q&quot; data-answer=&quot;0&quot;&gt;&lt;p&gt;&lt;b&gt;5.&lt;\/b&gt; Emma\u2019s cousin looks tired because Emma\u2019s cousin ____ for two hours.&lt;\/p&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q4&quot; value=&quot;0&quot;&gt; has been listening to music&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q4&quot; value=&quot;1&quot;&gt; has listened to music&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q4&quot; value=&quot;2&quot;&gt; is listening to music&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q4&quot; value=&quot;3&quot;&gt; was listening to music&lt;\/label&gt;&lt;div class=&quot;feedback&quot;&gt;&lt;\/div&gt;&lt;\/section&gt;\n&lt;section class=&quot;q&quot; data-answer=&quot;3&quot;&gt;&lt;p&gt;&lt;b&gt;6.&lt;\/b&gt; Frank\u2019s cousin looks tired because Frank\u2019s cousin ____ for two hours.&lt;\/p&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q5&quot; value=&quot;0&quot;&gt; has studied English&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q5&quot; value=&quot;1&quot;&gt; is studying English&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q5&quot; value=&quot;2&quot;&gt; was studying English&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q5&quot; value=&quot;3&quot;&gt; has been studying English&lt;\/label&gt;&lt;div class=&quot;feedback&quot;&gt;&lt;\/div&gt;&lt;\/section&gt;\n&lt;section class=&quot;q&quot; data-answer=&quot;2&quot;&gt;&lt;p&gt;&lt;b&gt;7.&lt;\/b&gt; Grace\u2019s cousin looks tired because Grace\u2019s cousin ____ for two hours.&lt;\/p&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q6&quot; value=&quot;0&quot;&gt; is cooking dinner&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q6&quot; value=&quot;1&quot;&gt; was cooking dinner&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q6&quot; value=&quot;2&quot;&gt; has been cooking dinner&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q6&quot; value=&quot;3&quot;&gt; has cooked dinner&lt;\/label&gt;&lt;div class=&quot;feedback&quot;&gt;&lt;\/div&gt;&lt;\/section&gt;\n&lt;section class=&quot;q&quot; data-answer=&quot;1&quot;&gt;&lt;p&gt;&lt;b&gt;8.&lt;\/b&gt; Henry\u2019s cousin looks tired because Henry\u2019s cousin ____ for two hours.&lt;\/p&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q7&quot; value=&quot;0&quot;&gt; was writing emails&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q7&quot; value=&quot;1&quot;&gt; has been writing emails&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q7&quot; value=&quot;2&quot;&gt; has written emails&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q7&quot; value=&quot;3&quot;&gt; is writing emails&lt;\/label&gt;&lt;div class=&quot;feedback&quot;&gt;&lt;\/div&gt;&lt;\/section&gt;\n&lt;section class=&quot;q&quot; data-answer=&quot;0&quot;&gt;&lt;p&gt;&lt;b&gt;9.&lt;\/b&gt; Iris\u2019s cousin looks tired because Iris\u2019s cousin ____ for two hours.&lt;\/p&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q8&quot; value=&quot;0&quot;&gt; has been visiting relatives&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q8&quot; value=&quot;1&quot;&gt; has visited relatives&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q8&quot; value=&quot;2&quot;&gt; is visiting relatives&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q8&quot; value=&quot;3&quot;&gt; was visiting relatives&lt;\/label&gt;&lt;div class=&quot;feedback&quot;&gt;&lt;\/div&gt;&lt;\/section&gt;\n&lt;section class=&quot;q&quot; data-answer=&quot;3&quot;&gt;&lt;p&gt;&lt;b&gt;10.&lt;\/b&gt; Jack\u2019s cousin looks tired because Jack\u2019s cousin ____ for two hours.&lt;\/p&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q9&quot; value=&quot;0&quot;&gt; has walked to school&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q9&quot; value=&quot;1&quot;&gt; is walking to school&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q9&quot; value=&quot;2&quot;&gt; was walking to school&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q9&quot; value=&quot;3&quot;&gt; has been walking to school&lt;\/label&gt;&lt;div class=&quot;feedback&quot;&gt;&lt;\/div&gt;&lt;\/section&gt;&lt;div class=&quot;controls&quot;&gt;&lt;button id=&quot;check&quot;&gt;Check Answers&lt;\/button&gt;&lt;button id=&quot;show&quot; class=&quot;secondary&quot;&gt;Show Answers&lt;\/button&gt;&lt;button id=&quot;again&quot; class=&quot;secondary&quot;&gt;Try Again&lt;\/button&gt;&lt;\/div&gt;&lt;div id=&quot;score&quot; class=&quot;score&quot; aria-live=&quot;polite&quot;&gt;Score: not checked yet&lt;\/div&gt;&lt;\/div&gt;&lt;\/main&gt;&lt;script&gt;(()=&gt;{const qs=[...document.querySelectorAll('.q')];const mark=(q,chosen)=&gt;{const a=+q.dataset.answer;q.classList.remove('correct','wrong');q.classList.add(chosen===a?'correct':'wrong');q.querySelector('.feedback').textContent=chosen===a?'\u2713 Correct':'\u2715 Correct answer: '+q.querySelectorAll('label')[a].textContent.trim()};document.getElementById('check').onclick=()=&gt;{let c=0;qs.forEach(q=&gt;{const x=q.querySelector('input:checked');const v=x?+x.value:-1;if(v===+q.dataset.answer)c++;mark(q,v)});document.getElementById('score').textContent='Score: '+c+'\/'+qs.length+' ('+Math.round(c\/qs.length*100)+'%)'};document.getElementById('show').onclick=()=&gt;{qs.forEach(q=&gt;{const a=+q.dataset.answer;q.querySelectorAll('input')[a].checked=true;mark(q,a)});document.getElementById('score').textContent='Answers shown \u2014 complete the exercise yourself, then check your score.'};document.getElementById('again').onclick=()=&gt;{qs.forEach(q=&gt;{q.classList.remove('correct','wrong');q.querySelectorAll('input').forEach(x=&gt;x.checked=false);q.querySelector('.feedback').textContent=''});document.getElementById('score').textContent='Score: not checked yet'};})();&lt;\/script&gt;&lt;\/div&gt;&lt;script&gt;\n(function(){\nconst expectedHash=&quot;bc5d5f040ace37368fa65f2800cbb0b15e9671f8f451d16967b9d462ff2dbf44&quot;;\nconst expiry=new Date(&quot;2027-08-10T23:59:59+03:00&quot;).getTime();\nconst form=document.getElementById(&quot;accessForm&quot;), keyInput=document.getElementById(&quot;accessKey&quot;), msg=document.getElementById(&quot;accessMessage&quot;), gate=document.getElementById(&quot;accessGate&quot;), app=document.getElementById(&quot;exerciseApp&quot;);\nasync function sha256(text){const bytes=new TextEncoder().encode(text);const digest=await crypto.subtle.digest(&quot;SHA-256&quot;,bytes);return Array.from(new Uint8Array(digest)).map(b=&gt;b.toString(16).padStart(2,&quot;0&quot;)).join(&quot;&quot;);}\nfunction expired(){return Date.now()&gt;expiry;}\nfunction deny(text){msg.textContent=text;app.hidden=true;gate.style.display=&quot;grid&quot;;}\nfunction allow(){gate.style.display=&quot;none&quot;;app.hidden=false;keyInput.value=&quot;&quot;;}\nif(expired()) deny(&quot;This access key has expired.&quot;);\nform.addEventListener(&quot;submit&quot;,async function(e){e.preventDefault(); if(expired()){deny(&quot;This access key has expired.&quot;);return;} const entered=keyInput.value.trim(); if(!entered){deny(&quot;Please enter the access key.&quot;);return;} try{const hash=await sha256(entered); if(hash===expectedHash){allow();}else{deny(&quot;Incorrect access key.&quot;);}}catch(err){deny(&quot;Access check is unavailable in this browser.&quot;);}});\n})();\n&lt;\/script&gt;&lt;\/body&gt;&lt;\/html&gt;\" style=\"width:100%;min-height:1450px;border:0;border-radius:8px;background:#eef3f8;display:block;\" loading=\"lazy\"><\/iframe><\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":7,"featured_media":0,"parent":9619,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"ngg_post_thumbnail":0,"footnotes":""},"class_list":["post-10718","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/pages\/10718","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/comments?post=10718"}],"version-history":[{"count":0,"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/pages\/10718\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/pages\/9619"}],"wp:attachment":[{"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/media?parent=10718"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}